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

โปรแกรมหาจำนวนสี่เท่าซึ่งผลิตภัณฑ์ของคู่แรกและคู่สุดท้ายเหมือนกันในPython


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums โดยมีหมายเลขบวกเฉพาะ nums เราต้องหาจำนวนสี่เท่าเช่น (a, b, c, d) จากจำนวนที่ a*b =c*d, a, b, c และ d เป็นองค์ประกอบที่ชัดเจนของ nums

ดังนั้น หากอินพุตเป็น nums =[3, 6, 4, 8] ผลลัพธ์จะเป็น 8 เพราะสี่เท่าคือ [[3,8,6,4], [3,8,4,6] , [8,3,6,4], [8,3,4,6], [6,4,3,8], [4,6,3,8], [6,4,8,3] , [4,6,8,3]].

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

  • c :=แผนที่ใหม่
  • n :=ขนาดของ nums
  • สำหรับฉันในช่วง 0 ถึง n - 1 ทำ
    • สำหรับ j ในช่วง i + 1 ถึง n - 1 ทำ
      • x :=nums[i] * nums[j]
      • c[x] :=1 + (c[x] ถ้ามี มิฉะนั้น 0)
  • ret :=0
  • สำหรับแต่ละ x ในรายการของค่าทั้งหมดใน c ทำ
    • ret :=ret + x *(x - 1)
  • ผลตอบแทนย้อนหลัง * 4

ตัวอย่าง

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

def solve(nums):
   c = {}
   n = len(nums)
   for i in range(n):
      for j in range(i + 1, n):
         x = nums[i] * nums[j]
         c[x] = c.get(x, 0) + 1
   ret = 0
   for x in c.values():
      ret += x * (x - 1)
   return ret * 4

nums = [3, 6, 4, 8]
print(solve(nums))

อินพุต

[3, 6, 4, 8]

ผลลัพธ์

8