मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जिसमें अद्वितीय सकारात्मक संख्याएँ होती हैं। हमें अंकों में से (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 की श्रेणी में, करें
- x :=nums[i] * nums[j]
- c[x] :=1 + (c[x] यदि उपलब्ध हो, अन्यथा 0)
- जे के लिए i + 1 से n-1 की श्रेणी में, करें
- रिट:=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