उलटी गिनती संख्याओं के नाम गोल समस्या - और एल्गोरिदम समाधान?


10

दर्शकों में नॉन-ब्रिट्स के लिए, एक दिन के खेल-शो का एक सेगमेंट है जहां प्रतियोगियों में 6 संख्याओं का एक सेट और एक यादृच्छिक रूप से उत्पन्न लक्ष्य संख्या है। उन्हें केवल अंकगणितीय संचालकों का उपयोग करके 6 संख्याओं में से किसी भी (लेकिन सभी आवश्यक नहीं) का उपयोग करके लक्ष्य संख्या तक पहुंचना है। सभी गणनाओं का परिणाम सकारात्मक पूर्णांक होना चाहिए।

एक उदाहरण: Youtube: उलटी गिनती - सबसे असाधारण संख्या खेल कभी?

विकिपीडिया: उलटी गिनती (गेम शो) पर एक विस्तृत विवरण दिया गया है

उदाहरण के लिए:

  • सामग्री 6 संख्याओं का चयन करती है - दो बड़ी (संभावनाओं में 25, 50, 75, 100) और चार छोटे (संख्या 1 .. 10, प्रत्येक पूल में दो बार शामिल होती हैं)।
  • उठाया संख्या रहे हैं 75, 50, 2, 3, 8, 7का लक्ष्य संख्या के साथ दिया जाता है 812
  • एक प्रयास है (75 + 50 - 8) * 7 - (3 * 2) = 813 (यह लक्ष्य 5 में से 5 के समाधान के लिए 7 अंक है)
  • एक सटीक उत्तर होगा (50 + 8) * 7 * 2 = 812 (इससे लक्ष्य से मिलान करने पर 10 अंक प्राप्त होंगे)।

जाहिर है कि यह समस्या टीवी के आगमन से पहले मौजूद है, लेकिन विकिपीडिया लेख इसे कोई नाम नहीं देता है। मैंने इस खेल को एक प्राथमिक स्कूल में भी देखा है जिसमें मैंने भाग लिया था, जहां खेल को "क्रिप्टो" कहा जाता था, एक अंतर-वर्ग प्रतियोगिता के रूप में - लेकिन इसके लिए खोज करने से अब कुछ भी नहीं पता चलता है।

मैंने इसमें कुछ बार भाग लिया और मेरे पिताजी ने एक एक्सेल स्प्रेडशीट लिखी, जिसने समस्या को हल करने का प्रयास किया, मुझे याद नहीं है कि यह कैसे काम करता है (केवल यह काम नहीं करता था, एक्सेल की 65535 पंक्ति सीमा के साथ), लेकिन निश्चित रूप से समस्या के लिए एक एल्गोरिथम समाधान होना चाहिए। हो सकता है कि एक ऐसा समाधान हो जो मानव अनुभूति के काम करने का तरीका (जैसे संख्याओं को 'करीब-करीब खोजने' के लिए, फिर उम्मीदवारों को लेने और 'छोटे' संचालन करने के लिए समानांतर हो)।


1
मैंने इसे ग्राफिक रूप से हल किया - उन संख्याओं पर किए जाने वाले ऑपरेशन का प्रतिनिधित्व करने के लिए गणना और किनारों के परिणामों का प्रतिनिधित्व करने के लिए नोड्स का उपयोग करें, फिर वांछित पथ को खोजने के लिए एक ग्राफ़ खोज एल्गोरिथ्म का उपयोग करें
ell

1
नियमों को पढ़ने से, ऐसा लगता है कि एक सही समाधान तक नहीं पहुंचना संभव है - उदाहरण के लिए यदि चयनित संख्याएं हैं (1, 1, 2, 2, 3, 3) और लक्ष्य संख्या 999 है। वास्तव में किसी भी एल्गोरिथ्म के लिए लक्ष्य निकटतम संभव समाधान खोजना होगा।
रिच स्मिथ

1
@ वेल: क्या आपका ग्राफ खोज समाधान मूल रूप से एक जानवर बल खोज है?
मार्टिन

मैंने अपने क्रियान्वयन में पहले एक गहराई का उपयोग किया, लेकिन मुझे यह नहीं दिखता कि क्यों कुछ दिक्क्स्ट्रा का उपयोग नहीं किया जा सकता है।
ell

1
राज्यों में हमारे कुछ इसी तरह के शो हैं: हम एक घर में लगभग 6 उप-साक्षर बेवकूफों को कई हफ्तों तक चिपकाते हैं और उन्हें एक दूसरे के बारे में बात करने और एक दूसरे को चिल्लाते हुए फिल्म करते हैं । यह उतना ही करीब है जितना कि हमारे टीवी को लोकप्रिय शो में इस बौद्धिक चीज के लिए मिलता है।
RBarryYoung 23

जवाबों:


4

डिस्क्लेमर: यह उत्तर उस प्रश्न का उत्तर नहीं देता है जो पूरी तरह से है। लेकिन यह एक टिप्पणी के लिए बहुत लंबा है।

एनपी मुश्किल? मेरा मानना ​​है कि यह समस्या एनपी-हार्ड हो सकती है ।

नैकपैक समस्या के एक विशेष मामले पर विचार करें :

धनात्मक पूर्णांक और उसे धन पूर्णांक का एक सेट को देखते हुए , वहाँ सेट ऐसा है कि उस सबसेट में सभी पूर्णांकों का योग के बराबर होती है के एक सबसेट मौजूद है ?

यह हमारी उलटी गिनती समस्या के समान लगता है, और यह बहुत सरल प्रतीत होता है। हालांकि, नैकपैक (और नैकपैक का यह विशेष मामला) एनपी-हार्ड (और एनपी-पूर्ण, निश्चित रूप से) है।

मैंने इसका उपयोग इस प्रमाण के लिए नहीं किया कि काउंटडाउन एनपी-हार्ड है। मैं विभाजन से छुटकारा नहीं पा सका। विचार करें कि हमारे पास एक हज़ार 2, और b = 7. यह नैकपैक के साथ कभी भी हल नहीं होगा, लेकिन हमेशा (?) काउंटडाउन के साथ, कम से कम सभी तरीकों से मैंने समस्या को स्थानांतरित करने की कोशिश की।

अब, यदि काउंटडाउन वास्तव में एनपी-हार्ड था, तो हम यह अनुमान लगा सकते हैं कि बहुत अधिक संभावना के साथ कोई एल्गोरिथ्म नहीं है जो सभी संभावनाओं की कोशिश कर रहे जानवर-बल की तुलना में काफी अधिक कुशल है। (और अगर हमें इस तरह के एल्गोरिदम को खोजना चाहिए, तो हम बहुत प्रसिद्ध हो जाएंगे।)

नहीं, मुझे नहीं लगता कि एक कुशल एल्गोरिदम होना चाहिए।

Heuristics। प्रश्न में लिंक किए गए Youtube वीडियो का एक अच्छा उदाहरण है: प्रतियोगी को सटीक उत्तर 952 = ((100 + 6) * 3 * 75 - 50) / 25 मिला। यह पूरी तरह से मेरे अंतर्ज्ञान के खिलाफ है, मैंने कभी भी यह कोशिश नहीं की होगी कि पहली बार में रास्ता: एक बहुत बड़ी संख्या का उत्पादन करें, फिर इसे विभाजित करें और परिणाम प्राप्त करें।

दूसरी ओर, हम मनुष्यों को लगता है कि हमें तीन-अंकीय संख्या तक पहुँचने के लिए (मनमाने उदाहरण) 50 * 75 * 100/2/3/7 प्रयास करने की आवश्यकता नहीं है। लेकिन कंप्यूटर कुछ भी महसूस नहीं करते हैं , वे सरल गणना करते हैं।

आखिरकार, यदि हमने कुछ अनुमानों को लागू किया है, और इस आंकड़े का सटीक समाधान नहीं है, तो हमें अभी भी यह सुनिश्चित करने के लिए अन्य सभी समाधानों की कोशिश करनी होगी कि वास्तव में कोई नहीं है।

यूट्यूब वीडियो में प्रतियोगी क्या करता है, मुझे लगता है, बहुत बड़ी संख्या में संभावनाओं की शीघ्रता से जांच करना और उन लोगों को जल्दी से त्याग देना जो (या संभावना नहीं होगी) एक समाधान देंगे।

निष्कर्ष। एल्गोरिथ्म को लागू करते समय, कोई समान गणना जैसे कि / b / c = a / (b * c) को छीन सकता है, लेकिन मुझे लगता है कि यह करना काफी कठिन है और मुझे नहीं पता कि इससे रनटाइम में काफी सुधार होता है या नहीं।

बड़ी संख्या में संभावनाओं की जांच करने में मनुष्य की तुलना में बेशक कंप्यूटर तेज होते हैं। और आजकल, स्मार्टफोन भी इतनी तेज हैं कि वे इस समस्या को हल कर सकते हैं, मुझे लगता है, बस एक सेकंड के भीतर सभी संभावनाओं को आजमाकर। (मैंने इसका परीक्षण नहीं किया।) केवल छह संख्याएँ हैं, यदि उनमें से 60 उदाहरण हैं तो यह अलग होगा।


उदाहरण के लिए समाधान, हालांकि यह बहुत प्रभावशाली है, यह उतना जटिल नहीं है जितना कि यह पहली बार दिखाई दे सकता है। उनकी विचार प्रक्रिया, शून्य से अधिक स्पष्ट सामग्री जो उन्होंने कोशिश की हो सकती है, होने की संभावना है "मैं 954 (100 + 6) * 9 का उपयोग करके प्राप्त कर सकता हूं, जिसे मैं (100 + 6) * 3 * 75/25 के माध्यम से कर सकता हूं। मेरे पास 50 बचे हैं और 50/25 दो हैं, इसलिए मैं 25 से भाग करने से पहले 50 (100 + 6) * 3 * 75 तक ले सकता हूं। ''
टिम डाउन

1

एक एल्गोरिथ्म वास्तव में बहुत मुश्किल नहीं है।

दो नंबर a और b को देखते हुए, हम परिणाम a + b, abs (a - b) उत्पन्न कर सकते हैं (मुझे नहीं पता कि नकारात्मक संख्याओं की अनुमति है या नहीं, इस स्थिति में हम a - b और a + b) का उत्पादन कर सकते हैं, a * b, और संभवतः / a / b या b / यदि परिणाम एक पूर्णांक है। तो संभावित परिणाम पांच संख्या तक का एक सेट है। इस सेट को S (a, b) कहें।

छह नंबर ए, बी, सी, डी, ई और एफ लें।

दो संख्याओं के प्रत्येक सबसेट के लिए, उन संख्याओं को खोजें जो वे उत्पन्न कर सकते हैं।

फिर तीन संख्याओं के प्रत्येक सबसेट के लिए, उन संख्याओं को खोजें जो वे उत्पन्न कर सकते हैं: S (a, b, c) = S (S (a, b), c) संघ S (S (a, c), b) संघ S ( एस (बी, सी), ए)।

फिर 4 या 5 संख्याओं के प्रत्येक सबसेट के लिए समान, फिर सभी 6 संख्याओं के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.