ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, যার মধ্যে অনন্য ধনাত্মক সংখ্যা রয়েছে। আমাদেরকে সংখ্যা থেকে (a, b, c, d) এর মতো চতুর্গুণের সংখ্যা খুঁজে বের করতে হবে যাতে a*b =c*d, a, b, c এবং d সবই সংখ্যার স্বতন্ত্র উপাদান।
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[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 :=সংখ্যার আকার
- আমি 0 থেকে n - 1 রেঞ্জের জন্য, কর
- i + 1 থেকে n - 1 রেঞ্জে j-এর জন্য
- করুন
- x :=nums[i] * nums[j]
- c[x] :=1 + (c[x] যদি পাওয়া যায়, অন্যথায় 0)
- করুন
- ret :=0
- c-এর সমস্ত মানের তালিকায় প্রতিটি x-এর জন্য, করুন
- 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