Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมนับคู่ดัชนีที่องค์ประกอบอาร์เรย์เหมือนกันในPython


สมมติว่าเรามีรายการหมายเลขที่เรียกว่า nums เราต้องหาจำนวนคู่ i

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[5, 4, 5, 4, 4] ผลลัพธ์จะเป็น 4 เนื่องจากเรามีคู่ดัชนีเช่น (0, 2), (1, 3), (1, 4 ) และ (3, 4).

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • c :=รายการที่มีความถี่ของแต่ละองค์ประกอบที่มีอยู่ใน nums

  • นับ :=0

  • สำหรับแต่ละ n ในรายการค่าทั้งหมดของ c ทำ

    • count :=count + floor of (n *(n - 1)) / 2

  • จำนวนคืน

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

from collections import Counter
def solve(nums):
   c = Counter(nums)
   count = 0
   for n in c.values():
      count += n * (n - 1) // 2
   return count

nums = [5, 4, 5, 4, 4]
print(solve(nums))

อินพุต

[5, 4, 5, 4, 4]

ผลลัพธ์

4