समस्या का बयान
अनूठे, लगातार प्राइम्स (जरूरी नहीं कि 2 सहित) के एक सेट को देखते हुए, इन प्राइम्स की पहली शक्तियों के सभी संयोजनों के उत्पाद उत्पन्न करें - जैसे, कोई दोहराता नहीं - और भी 1. उदाहरण के लिए, सेट {2, 3, 5, 7}, आप {1, 2, 3, 5, 6, 7, 10, 14, 15, 21, 30, 35, 42, 70, 105, 210} का उत्पादन करते हैं क्योंकि:
1 = 1
2 = 2
3 = 3
5 = 5
6 = 2 x 3
7 = 7
10 = 2 x 5
14 = 2 x 7
15 = 3 x 5
21 = 3 x 7
30 = 2 x 3 x 5
35 = 5 x 7
42 = 2 x 3 x 7
70 = 2 x 5 x 7
105 = 3 x 5 x 7
210 = 2 x 3 x 5 x 7
ध्यान दें कि यदि आपके इनपुट सेट की कार्डिनैलिटी k है, तो इससे आपको आउटपुट सेट में 2 ^ k सदस्य मिलेंगे।
नियमों / स्थितियां
- आप किसी भी भाषा का उपयोग कर सकते हैं। स्रोत कोड की सबसे छोटी वर्ण गणना के लिए लक्ष्य।
- आपका समाधान या तो एक पूर्ण कार्यक्रम या पूर्ण कार्य होना चाहिए। फ़ंक्शन अनाम हो सकता है (यदि आपकी भाषा अनाम कार्यों का समर्थन करती है)।
- आपका समाधान कम से कम 2 ^ 31 तक उत्पादों का समर्थन करने में सक्षम होना चाहिए। यदि आप उन संख्याओं से गुजरते हैं, जिनके उत्पाद का प्रतिनिधित्व करना बहुत अच्छा है, तो पूर्णांक अतिप्रवाह का पता लगाने या संभालने के बारे में चिंता न करें। हालाँकि, कृपया अपनी गणना की सीमा बताएं।
- आप सूची या सेट को स्वीकार कर सकते हैं या सूची या सेट का उत्पादन कर सकते हैं। आप मान सकते हैं कि इनपुट सॉर्ट किया गया है लेकिन आपको सॉर्ट किए गए आउटपुट का उत्पादन करने की आवश्यकता नहीं है।
पृष्ठभूमि
यह कब या क्यों उपयोगी है? एक जगह यह बहुत उपयोगी है कि एक वर्ग फैक्टरिंग एल्गोरिथ्म में समानांतर में दौड़ने के लिए गुणक की एक तालिका उत्पन्न करने में स्क्वायर फॉर्म फैक्टराइजेशन के रूप में जाना जाता है।। वहां, प्रत्येक विषम गुणक जो आप आजमाते हैं, एल्गोरिथम की विफलता की संभावना कम हो जाती है (एक कारक खोजने के लिए) कठिन अर्धवृत्तों पर लगभग 50%। इसलिए {3, 5, 7, 11} उत्पन्न करने वाले सेटों के साथ, जो समानांतर में दौड़ के लिए 16 ट्रायल मल्टीप्लायरों के सेट का निर्माण करता है, एल्गोरिथ्म कठिन अर्ध-काल पर लगभग 2 ^ -16 विफल रहता है। 13 को प्राइम लिस्ट में शामिल करने से 32 ट्रायल मल्टीप्लायर का एक सेट तैयार होता है, जिससे विफलता की संभावना लगभग 2 ^ -32 तक कम हो जाती है, जिसके परिणामस्वरूप अतिरिक्त कम्प्यूटेशनल खर्च पर परिणाम में भारी सुधार होता है (क्योंकि समानांतर में दो बार कई मल्टीप्लायरों के साथ रेसिंग भी होती है। औसत यह अभी भी चरणों की कुल संख्या में उत्तर पाता है)।