द ग्रेट एपीआई ईस्टर एग हंट से प्रेरित !
सारांश
आपका काम "Collatz अंतरिक्ष" में एक पूर्व निर्धारित पूर्णांक के लिए खोज करना है (बाद में समझाया जाना) संभव सबसे कम कदम का उपयोग करना।
परिचय
यह चुनौती प्रसिद्ध Collatz अनुमान पर आधारित है जो उम्मीद करता है कि यहाँ हर कोई कम से कम के बारे में सुना होगा। यहां प्रिंट द सुपर कोलाज़ेट नंबरों से लिया गया रिकैप है ।
Collatz अनुक्रम (भी 3x + 1 समस्या कहा जाता है) है, जहां आप किसी भी सकारात्मक पूर्णांक के साथ शुरू इस उदाहरण के लिए हम 10 का उपयोग करेगा, और यह करने के लिए कदम के इस सेट लागू होते हैं:
if n is even: Divide it by 2 if n is odd: Multiply it by 3 and add 1 repeat until n = 1
Collatz दूरी C(m,n)
दो संख्याओं के बीच m
और n
इस चुनौती के प्रयोजन के लिए, दो संख्याओं के बीच की दूरी है Collatz ग्राफ (का उपयोग करते हुए: है, जो परिभाषित किया गया है इस प्रकार है (मुझे इस अवधारणा के बारे में बताने के लिए @tsh को क्रेडिट) 21
और 13
उदाहरण के रूप में ):
m
(इस मामले में 21
) के लिए Collatz अनुक्रम लिखें :
21, 64, 32, 16, 8, 4, 2, 1
n
(इस मामले में 13
) के लिए Collatz अनुक्रम लिखें :
13, 40, 20, 10, 5, 16, 8, 4, 2, 1
अब गिनती करें कि केवल एक सीक्वेंस में कितने नंबर दिखाई देते हैं। यह Collatz m
और के बीच दूरी के रूप में परिभाषित किया गया है n
। इस मामले में 8
, अर्थात्,
21, 64, 32, 13, 40, 20, 10, 5
इसलिए हम दोनों के बीच Collatz दूरी है 21
और 13
के रूप में C(21,13)=8
।
C(m,n)
निम्नलिखित अच्छे गुण हैं:
C(m,n)=C(n,m)
C(m,n)=0 iff. m=n
उम्मीद है कि C(m,n)
अब की परिभाषा स्पष्ट है। आइए Collatz अंतरिक्ष में अंडे का शिकार करना शुरू करें!
खेल की शुरुआत में, एक नियंत्रक एक ईस्टर अंडे की स्थिति तय करता है, जो इसके एक-आयामी समन्वय द्वारा व्यक्त की जाती है: अंतराल में एक पूर्णांक [p,q]
(दूसरे शब्दों में, एक पूर्णांक के बीच p
और q
, दोनों समावेशी होते हैं)।
अंडे की स्थिति पूरे खेल में स्थिर रहती है। हम इस समन्वय को निरूपित करेंगे r
।
अब आप प्रारंभिक अनुमान लगा सकते हैं 0 , और यह नियंत्रक द्वारा दर्ज किया जाएगा। यह आपका 0 वां राउंड है। यदि आप इतने भाग्यशाली हैं कि आपने इसे पहले स्थान (यानी 0 = r) पर प्राप्त किया है, तो खेल समाप्त होता है, और आपका स्कोर 0
(स्कोर कम, बेहतर) है। अन्यथा, आप 1 राउंड में प्रवेश करते हैं और आप एक नया अनुमान लगाते हैं 1 , यह तब तक चलता है जब तक कि आप इसे सही नहीं मिला, अर्थात एन = आर, और आपका स्कोर होगा n
।
0 के बाद के प्रत्येक दौर के लिए, नियंत्रक आपको निम्नलिखित प्रतिक्रियाओं में से एक देता है ताकि आप दी गई जानकारी के आधार पर बेहतर अनुमान लगा सकें। मान लें कि आप वर्तमान में n
वें दौर में हैं और इसलिए आपका अनुमान एक n है
- "आपने ढूंढ लिया!" यदि n = r, तो जिस स्थिति में खेल समाप्त होता है और आप स्कोर करते हैं
n
। - "तुम करीब हैं :)" अगर सी (एक एन , आर) <सी (एक n-1 , आर)
- "तुम अंडा चारों ओर चक्कर काटते रहे हैं" अगर सी (एक एन , आर) = सी (एक n-1 , आर)
- "तुम दूर कर रहे हैं :(" अगर सी (एक एन , आर)> सी (एक n-1 , आर)
कुछ बाइट्स को बचाने के लिए, मैं ऊपर दिए गए आदेश में प्रतिक्रियाओं को "राइट", "क्लोज़र", "समान", "फ़ेथर" कहूंगा।
यहाँ एक उदाहरण के साथ खेल है p=1,q=15
।
- एक 0 = 10
- एक 1 = 11, प्रतिक्रिया: "क्लोज़र"
- एक 2 = 13, प्रतिक्रिया: "आगे"
- एक 3 = 4, प्रतिक्रिया: "आगे"
- एक 4 = 3, प्रतिक्रिया: "क्लोज़र"
- एक 5 = 5, प्रतिक्रिया: "वही"
- एक 6 = 7, प्रतिक्रिया: "ठीक है"
स्कोर: 6
।
चुनौती
सर्वश्रेष्ठ स्कोर के साथ खेल खेलने के लिए एक नियतात्मक रणनीति डिज़ाइन करें p=51, q=562
।
उत्तर एल्गोरिदम का विस्तार से वर्णन करना चाहिए। आप एल्गोरिथ्म को स्पष्ट करने में मदद करने वाले किसी भी कोड को संलग्न कर सकते हैं। यह कोडगुल्फ नहीं है इसलिए आपको सुपाठ्य कोड लिखने के लिए प्रोत्साहित किया जाता है।
उत्तरों में सबसे खराब स्कोर शामिल होना चाहिए जो वे सभी संभावित मामलों के लिए प्राप्त कर सकते हैं r
, और सबसे खराब स्कोर जीत के साथ। टाई के मामले में, एल्गोरिदम जिसमें सभी संभावित r
एस के लिए एक बेहतर औसत स्कोर है (जो कि उत्तर में भी शामिल होना चाहिए) जीत। आगे टाई ब्रेकर नहीं हैं और हमारे पास अंत में कई विजेता हो सकते हैं।
चश्मा
- पुनरावृत्ति करने के लिए,
r
अंतराल में निहित है[51,562]
। - डिफ़ॉल्ट कमियां लागू होती हैं।
बाउंटी (पहला उत्तर पोस्ट होने के बाद जोड़ा गया)
मैं व्यक्तिगत रूप से एक उत्तर देने की पेशकश कर सकता हूं, जहां सभी अनुमानों को सीमा के भीतर बनाया गया है, [51,562]
जबकि अभी भी काफी कम स्कोर है।