शॉटगन संख्या बल्कि एक सरल परिभाषा लेकिन कुछ रोचक संरचना के साथ एक दृश्य है। प्राकृतिक संख्याओं से शुरू करें:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...
अब सभी संख्याओं को 2 से विभाज्य सूचक स्थानों पर ले जाएं , उन्हें जोड़े में समूहित करें, और प्रत्येक जोड़ी में संख्याओं को स्वैप करें:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ...
^ ^ ^ ^ ^ ^ ^
<---> <---> <-----> <----
1, 4, 3, 2, 5, 8, 7, 6, 9, 12, 11, 10, 13, 16, ...
अब 3 से विभाज्य सूचकांकों के साथ ऐसा करें :
1, 4, 3, 2, 5, 8, 7, 6, 9, 12, 11, 10, 13, 16, ...
^ ^ ^ ^
<------> <--------->
1, 4, 8, 2, 5, 3, 7, 6, 10, 12, 11, 9, 13, 16, ...
और फिर 4 , 5 , 6 , और इतने पर:
1, 4, 8, 2, 5, 3, 7, 6, 10, 12, 11, 9, 13, 16, ...
1, 4, 8, 6, 5, 3, 7, 2, 10, 12, 11, 14, 13, 16, ...
1, 4, 8, 6, 12, 3, 7, 2, 10, 5, 11, 14, 13, 16, ...
1, 4, 8, 6, 12, 14, 7, 2, 10, 5, 11, 3, 13, 16, ...
...
K ऐसे चरणों के बाद , पहले k + 1 नंबर तय हो जाएंगे। तो हम शॉटगन संख्याओं के अनंत अनुक्रम को परिभाषित कर सकते हैं क्योंकि कश्मीर को अनंत तक जाने देने की सीमा है । पहले 66 नंबर हैं:
1, 4, 8, 6, 12, 14, 16, 9, 18, 20, 24, 26, 28, 22, 39, 15, 36, 35, 40, 38, 57, 34, 48, 49, 51, 44,
46, 33, 60, 77, 64, 32, 75, 56, 81, 68, 76, 58, 100, 55, 84, 111, 88, 62, 125, 70, 96, 91, 98, 95,
134, 72, 108, 82, 141, 80, 140, 92, 120, 156, 124, 94, 121, 52, 152, 145, ...
मजेदार तथ्य: केवल प्राकृतिक संख्याओं की अनुमति देकर प्राप्त किए जाने के बावजूद, इस क्रम में कोई भी अपराध नहीं है।
चुनौती
पूर्णांक को देखते हुए n > 0
, n
वें शॉटगन संख्या का पता लगाएं । आप STDIN (या निकटतम विकल्प), कमांड-लाइन तर्क या फ़ंक्शन तर्क के माध्यम से इनपुट लेते हुए एक प्रोग्राम या फ़ंक्शन लिख सकते हैं, आउटपुट को वापस कर सकते हैं या इसे STDOUT (या निकटतम विकल्प) पर प्रिंट कर सकते हैं।
यह कोड गोल्फ है, इसलिए सबसे छोटा सबमिशन (बाइट्स में) जीतता है।
लीडरबोर्ड
यह मेरे विचार से अधिक उत्तर प्राप्त कर रहा है, साथ ही साथ कई लोग एक ही भाषा में प्रतिस्पर्धा कर रहे हैं। इसलिए यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है।
यह सुनिश्चित करने के लिए कि आपका उत्तर दिखाई देता है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:
# Language Name, N bytes
N
आपके प्रस्तुत करने का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:
# Ruby, <s>104</s> <s>101</s> 96 bytes
10
, 21
, 25
और 30
, या तो नहीं दिखाई देते हैं, उदाहरण के लिए।
k
वें पुनरावृत्ति पर, k
सरणी में वें तत्व को 2k
वें स्थान पर स्थानांतरित कर दिया जाता है , और 2k
वें पुनरावृत्ति तक फिर से छुआ नहीं जाएगा , जिस समय पर यह 4k
वें स्थान पर स्थानांतरित हो जाता है , विज्ञापन infinitum। एक प्राइम को तब तक ट्रांसपोज़ नहीं किया जाता है जब तक कि उसकी बारी नहीं आती है, इसलिए बोलने के लिए, इसलिए सभी प्राइम आगे बढ़ जाते हैं। लेकिन हम आसानी से निर्दोष पीड़ितों की एक सूची बना सकते हैं, जो पहले तत्व को पुनरावृत्ति 2 और प्रत्येक विषमता में ट्रांसपोज़ किया जा सकता है। सूची इस प्रकार है: 2, 3, 5, 7, 10, 11, 13, 21, 17, 19, 30, 23, 27, 25, 29, 31, 45, 42, 37, 54, 41, 43, 65, 65 ...