मैं साहचर्य एल्गोरिथ्म पर कुछ अभ्यास कर रही हूँ और नीचे दिए गए प्रश्न हल करने के लिए कैसे पता लगाने की कोशिश कवर करने के लिए खोजें:छोटी से छोटी सेट समूह के सभी combinatory संभावनाओं
25 बिट्स के एक समूह, सेट को देखते हुए (चयन) 15 (गैर permutable और व्यवस्था गैर मामलों):
n!/(k!(n-k)!) = 3.268.760
अब इन संभावनाओं के हर एक मैट्रिक्स जहां मैं कहाँ में के बीच यह वहाँ पर होना चाहिए के संबंध में अन्य सभी 25bit सदस्य के खिलाफ हर अद्वितीय 25bit सदस्य पार निर्माण के लिए
कम से कम 11 आम निर्धारित बिट्स (केवल एक, शून्य नहीं)।
मुझे बाइनरी डेटा के रूप में यह प्रतिनिधित्व करने को वर्णन करने की कोशिश करते हैं, तो पहला सदस्य होगा:
0000000000111111111111111 (10 zeros and 15 ones) or (15 bits set on 25 bits)
0000000001011111111111111 second member
0000000001101111111111111 third member
0000000001110111111111111 and so on....
...
1111111111111110000000000 up to here. The 3.268.760 member.
अब 1 x 1 के लिए एक मैट्रिक्स मैं 15 बिट्स आम होना आवश्यक है पर इन मूल्यों को पार। चूंकि परिणाम है> = 11 यह एक "उपयोगी" परिणाम है।
1 एक्स 2 के लिए हमारे पास 14 बिट्स आम हैं, इसलिए एक वैध परिणाम भी है।
ऐसा करने के लिए, सभी सदस्यों के लिए, आखिरकार, 1 x 3.268.760 को पार करने के परिणामस्वरूप 5 बिट सामान्य हो सकते हैं क्योंकि यह < 11 है, यह "उपयोगी" नहीं है।
मुझे क्या चाहिए (गणित या एल्गोरिदम द्वारा) जो कि 11 बिट्स सामान्य होने वाली सभी संभावनाओं को कवर करने के लिए आवश्यक सदस्यों की न्यूनतम संख्या है।
दूसरे शब्दों में एन सदस्यों का एक समूह जो कि अन्य सभी के खिलाफ परीक्षण किया गया है, में कुल 3.268.760 x 3.268.760 ब्रह्मांड में कम से कम 11 बिट्स हो सकते हैं।
एक ब्रूट फोर्स एल्गोरिदम का उपयोग करके मुझे पता चला कि 81 25 बिट सदस्य के साथ यह संभव है। लेकिन मुझे लगता है कि यह संख्या छोटा होना चाहिए (12 के करीब कुछ)।
मैं 3.268.760 पर 12 सदस्यों की सभी संभावित विविधताओं को बनाने के लिए एक ब्रूट फोर्स एल्गोरिदम का उपयोग करने की कोशिश कर रहा था लेकिन संभावनाओं की संख्या इतनी बड़ी है कि गणना करने में सौ से अधिक वर्षों लगेंगे (3,156x10e69 संयोजन)।
मैंने संयोजक के बारे में गुमराह किया है लेकिन ऐसे कई क्षेत्र हैं जिन्हें मैं नहीं जानता कि इन समस्याओं को फिट होना चाहिए।
तो संयोजन के विच क्षेत्र पर किसी भी दिशा, या इन मुद्दों के लिए किसी भी एल्गोरिदम की सराहना की जाती है।
पीएस: बस संदर्भ के लिए। दो सदस्यों के "समानता" का उपयोग कर की गणना:
(Not(a xor b)) and a
उसके बाद आम बिट्स की संख्या को देखते हुए बिट्स गिनती करने के लिए एक छोटा सा पुनरावर्ती पाश नहीं है।
संपादित करें: टिप्पणी पर (@btilly) promissed के रूप में यहाँ नीचे 'भग्न' संबंधों या link to image
रंग पैमाने हरे रंग के लाल (15bits मैच) से लेकर की छवि है (11bits मैच) 10 बिट से कम मूल्यों के लिए काला करने के लिए।
यह छवि केवल 4096 प्रथम समूहों का नमूना है।
यदि आदेश मामलों में 'n!/(N-k)! संयोजन नहीं होना चाहिए? – SirGuy
मेरा मानना है कि यह [math.SE] के लिए बेहतर होगा (http://math.stackexchange.com)। – jwodder
गायग्रेयर [यहां] (http://en.wikipedia.org/wiki/Combination) का संदर्भ लें। संपादित करें: ठीक गलत वर्तनी (आदेश कोई फर्क नहीं पड़ता)। jwodder मैं सहमत हूं लेकिन चूंकि न केवल गणित का उपयोग करके बल्कि एक एल्गोरिदम का समाधान भी होना चाहिए, और चूंकि मैं गणितज्ञ से अधिक प्रोग्रामर हूं, इसलिए मैं यहां लोगों को सुनना पसंद करता हूं;) –