Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình đếm các cặp chỉ mục mà các phần tử mảng giống nhau trong Python

Giả sử chúng ta có một danh sách các số được gọi là nums. Chúng ta phải tìm số cặp i

Vì vậy, nếu đầu vào là nums =[5, 4, 5, 4, 4], thì đầu ra sẽ là 4, vì Chúng ta có các cặp chỉ mục như (0, 2), (1, 3), (1, 4 ) và (3, 4).

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • c:=danh sách chứa tần số của từng phần tử có trong nums

  • đếm:=0

  • với mỗi n trong danh sách tất cả các giá trị của c, do

    • count:=count + tầng của (n * (n - 1)) / 2

  • số lần trả lại

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn

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))

Đầu vào

[5, 4, 5, 4, 4]

Đầu ra

4