Kolmogorov-उन्माद


32

Kolmogorov जटिलता एक स्ट्रिंग की लंबाई के रूप में परिभाषित किया गया है कम से कम कार्यक्रम पी कि आउटपुट रों। यदि P की लंबाई s की लंबाई से कम है, तो s को संपीड़ित कहा जाता है , अन्यथा s अचूक है । अधिकांश तार असंगत हैं ...

सबसे छोटा प्रोग्राम लिखें जो इस स्ट्रिंग को आउटपुट करता है (बिना रिक्त स्थान और बिना नईलाइन्स के):

d9 a6 b6 33 56 a7 95 4b 29 b0 ac 7f 2a aa 6d 19 b8 4b 4c f8 b6 2a ac 95 
a1 4b 4e a5 9d b3 e7 c9 4c 49 59 ec 94 b3 aa 6c 93 8f 11 5a 4d 39 75 82 
ec ea 24 cc d3 2d c3 93 38 4e b7 a6 0d d2 b5 37 23 54 ad 1b 79 aa 6e 49 
55 52 94 5a a7 3a 6a e9 e4 52 cd 2d 79 ad c6 12 b5 99 5b b4 76 51 17 4e 
94 f3 9a a2 e7 15 6a 55 14 4d 4e 4a a3 5c 2f ab 63 cc b5 a6 a4 92 96 8a 
2e c3 d8 88 9b 8c a9 16 f5 33 22 5b a2 e2 cc 1b 27 d4 e8 db 17 a4 39 85 
ca aa 5b 4f 36 24 d3 c6 f6 94 ad d7 0f 71 24 e1 b1 c5 ef 65 35 6c 8d d7 
1a 87 1e 25 df 5d c0 13 b2 6f 5a 57 28 98 bd 41 66 04 ed a2 52 c9 ac 83 
b3 6c 56 7e d1 c6 cc 53 4a 62 c5 59 a9 b2 d4 af 22 a5 a9 f4 b2 99 23 32 
f8 fb ae 48 6a 8a 9a b5 46 7a 36 59 9f 92 d3 25 b5 19 bd 8a 4a 49 62 a5 
e4 59 fb e5 ba a2 35 dd a9 36 1d a9 c9 69 89 77 6a b2 34 2d 1d 22 61 c5 
c2 66 1c e2 76 74 52 a5 d9 84 b9 8a a6 b5 14 ec 29 58 b2 bc 96 16 16 48 
f5 c5 bd 2f 32 1b 3d 4f 4b 2e b2 6b 9a d9 32 a4 4b 5c bc 92 b7 b3 26 39 
fa 42 2d 64 ed 1a 79 49 4c a3 b7 85 b2 a6 e2 8c d9 55 90 e1 a8 87 4b 60 
a6 e1 ba c4 bb ec 32 39 76 90 a6 b4 c6 65 79 61 91 aa 3d 54 b7 18 3d 15 
4b 06 db 30 8a 4d 4a a1 35 75 5d 3b d9 98 ac 55 5b 10 dd b3 e2 cc f1 5e 
b3 2b 53 90 b6 ee 2b ac 8f 88 8d 95 5a 75 df 59 2d 1c 5a 4c e8 f4 ea 48 
b9 56 de a0 92 91 a9 15 4c 55 d5 e9 3a 76 8e 04 ba e7 b2 aa e9 ab 2a d6 
23 33 45 3d c4 e9 52 e3 6a 47 50 ba af e4 e5 91 a3 14 63 95 26 b3 8b 4c 
bc aa 5a 92 7a ab ad a6 db 53 2e 97 06 6d ba 3a 66 49 4d 95 d7 65 c2 aa 
c3 1a 92 93 3f ca c2 6c 2b 37 55 13 c9 88 4a 5c 62 6b a6 ae cc de 72 94 

आउटपुट जैसा दिखना चाहिए:

d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4e...7294

नोट: किसी भी उपयोगकर्ता इनपुट की अनुमति नहीं है, न ही वेब एक्सेस, न ही लाइब्रेरीज़ (आउटपुट को प्रिंट करने के लिए आवश्यक एक को छोड़कर)।

मुझे संपादित करें: अनुक्रम यादृच्छिक लगता है ... लेकिन यह थोड़ा संकुचित हो जाता है जो कि छोटी संख्याओं को नियंत्रित करता है ...

संपादित करें II: शाबाश! मैं अगले घंटों में जवाबों की समीक्षा करूंगा, फिर बाउंटी को सौंप दूंगा। यह मेरा विचार है कि इसे कैसे हल किया जा सकता है:

  1. यदि आप डेटा को संपीड़ित करने का प्रयास करते हैं, तो आप बहुत दूर नहीं जाते ...
  2. इंटरनेट में आप इंटेगर सीक्वेंस (OEIS) की ऑन-लाइन (अच्छी तरह से जाना जाता है) पा सकते हैं ;
  3. पहले हेक्साडेसिमल अंकों d9, a6, b6, 33, ...(या उनके दशमलव प्रतिनिधित्व) की कोशिश करने से कोई परिणाम नहीं मिलता है;
  4. लेकिन अगर आप संख्याओं को बाइनरी में परिवर्तित करते हैं ( 1,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0) और उन्हें OEIS पर खोजते हैं, तो आपको यह परिणाम मिलता है
  5. जैसा कि क्लाउडीयू ने कहा, मैंने सवाल में थोड़ा संकेत भी दिया (संपादित करें ऊपर) ... :-)

विजेता है : पीटर टेलर (गोल्फस्क्रिप्ट, 50), क्लाउडीयू (पायथन, 92) के लिए एक विशेष उल्लेख के साथ, पहला जिसने इसे "हल" किया।


2
यह अन्य कोमोगोरोव-जटिलता सवालों की तुलना में अधिक दिलचस्प कैसे है ?
दरवाज़े

2
@ डॉर्कनोब: शायद कुछ भी नहीं ... कम से कम जब तक कोई एक उत्तर पोस्ट नहीं करेगा :-)
Marzio De Biasi

5
क्या यह "स्थिरांक" का खेल माना जाता है?
पीटर टेलर

7
समाधान मत देना! लोग इस पर काम कर रहे हैं :-)
मऊ

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

जवाबों:


11

गोल्फस्क्रिप्ट (50 बाइट्स)

$ wc -c codegolf24909.min.gs 
50 codegolf24909.min.gs
$ md5sum codegolf24909.min.gs 
ce652060039fba071d17333a1199fd72  codegolf24909.min.gs
$ time golfscript.rb codegolf24909.min.gs 
d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626ba6aeccde7294

real    365m11.938s
user    364m45.620s
sys     0m6.520s

चूँकि हर कोई अब अपने कोड का खुलासा कर रहा है, इसलिए मैं ओपी के अनुरोध को अनसुना करने का अनुरोध भी करूंगा:

38200,{:x,{)x\%!},,2=},4/{3\{2&!!1$++}/.57>39*+}%+

अवलोकन विच्छेदन

  • N = 38200 के साथ N की तुलना में छोटे प्राइम की गणना करें : यह पहले 4032 प्रिम्स देता है:38200,{:x,{)x\%!},,2=},
  • हम हेक्स रूपांतरण के साथ प्रति बिट एक बिट चाहते हैं, इसलिए उन्हें 4 के समूहों में विभाजित करें: 4/
  • प्रत्येक समूह के लिए, प्रत्येक प्राइम pको मैप करें p&2 != 0और बेस -2 से बेस -16 रूपांतरण करें: {3\{2&!!1$++}/.57>39*+}%(यह वह जगह है जहाँ दिलचस्प ट्रिक्स हैं)
  • अब हमारे पास ASCII मूल्यों की एक सरणी है, साथ ही स्टड से खाली स्ट्रिंग; आउटपुट के लिए एक स्ट्रिंग प्राप्त करने के लिए उन्हें संक्षिप्त करें:+

आधार रूपांतरण का अधिक विस्तृत विच्छेदन

एक स्टैक को खाली स्ट्रिंग और प्रिम्स की सूची को देखते हुए, हमें दो रूपांतरण करने होंगे:

  1. प्रत्येक प्राइम को थोड़ा सा इंगित करें कि यह 2 या 3 (मॉड 4) के बराबर है या नहीं
  2. बिट्स को हेक्स अंक में परिवर्तित करें

1 करने के लिए समान रूप से लंबे तरीके हैं; जैसे

{4%1>}%
{4%2/}%
{2/1&}%
{2/2%}%
{2&!!}%

या और भी

{2&}% followed by a 2/ after the base conversion

2 के लिए, स्पष्ट दृष्टिकोण है

2base 16base{'0123456789abcdef'=}%+

लेकिन आधार एक लंबा शब्द है, और 16 = 2 4 के बाद से हम आसानी से कुछ वर्णों को बचा सकते हैं

4/{2base'0123456789abcdef'=}%+

अब सबसे स्पष्ट अपशिष्ट उस तार को समर्पित 18 वर्ण हैं। हम केवल अंक से ASCII कोड के लिए एक फ़ंक्शन चाहते हैं। हम मैप करना चाहते 0करने के लिए '0' = 48, ..., 9करने के लिए '9' = 57, 10करने के लिए 'a' = 97, ... 15करने के लिए 'f' = 102

4/{2base.9>39*+48+}%+

लेकिन अब मिश्रण में एक प्रतिबंध पर फेंक देते हैं base। हमें खुद इसे लागू करने की जरूरत है। स्पष्ट कार्यान्वयन (इस दिशा में, आसान एक) k baseयह एक गुना है {\k*+}*। थोड़ा लंबा विकल्प एक सीधा चलना है, जिसे आधार मामले की आवश्यकता है 0\{\k*+}/:। बेस 2 थोड़ा विशेष है: समान लंबाई के लिए 1$++बराबर है \2*+, और मैंने वह तरीका अपनाया है।

वे दोनों 5-वर्ण से अधिक लंबे हैं 2base, लेकिन चूंकि अब हम उन मूल्यों पर पुनरावृत्ति कर रहे हैं, जिन्हें हम 1 लूप में रखने के लिए भाग 1 में खींच सकते हैं। हम प्रतिस्थापित करते हैं

{2&!!}%4/{2base.9>39*+48+}%+

साथ में

4/{{2&!!1$++}*.9>39*+48+}%+

एक अच्छा 1-चार बचत के लिए, या

4/{0\{2&!!1$++}/.9>39*+48+}%+

1-चार नुकसान के लिए।

हालांकि, हालांकि 1-चर हानि पीछे की ओर एक कदम की तरह दिखता है, इस पर विचार करें कि क्या होता है 0. यह 16 से गुणा किया जाता है और आधार-रूपांतरण आउटपुट में जोड़ा जाता है। और अंतिम चीज जो हम करते हैं वह आउटपुट में 16 की एक बहु को जोड़ना है। इसलिए हम दोनों को जोड़ सकते हैं

4/{3\{2&!!1$++}/.57>39*+}%+

संयुक्त कम से कम और बोनस चतुरता इसे और अधिक रोचक बनाती है।


1
360 मिनट! यह काफी समय है। आश्चर्य है कि आपने क्या दृष्टिकोण लिया .. मेरा <1 मिनट
क्लेडियू

4
@ कैलाडु, मैं इसे बहुत तेज़ बना सकता था, लेकिन इसमें लगभग 5 वर्ण शामिल होंगे, और यह समय की कमी के साथ कोड-गोल्फ के बजाय कोलमोगोरोव-जटिलता है
पीटर टेलर

यदि आप इसका इस्तेमाल करते हैं तो आप इसे कितना कम कर सकते हैं base? अन्य सभी समाधान एक समतुल्य का उपयोग करते हैं (मेरा उपयोग करता है hex, सी एक का उपयोग करता है printf("%x"), हैस्केल का उपयोग करता है showHex)
क्लाउडीउ

1
@ कैलाडु, वास्तव में मेरा वर्तमान सबसे अच्छा दृष्टिकोण baseइस से अधिक लंबा है, क्योंकि मैंने स्पष्ट करने के बाद अधिकांश अनुकूलन किया कि मैं इसे प्रभावित नहीं कर सकता। baseमुझे 0 से 15 तक का मान देता है, इसलिए इसे बदलने के लिए अभी भी कुछ काम की आवश्यकता है 0-9a-f। मैं baseकुछ बिंदु का उपयोग करके फिर से देख सकता हूं , लेकिन आज रात नहीं।
पीटर टेलर

32

पायथन, 92 वर्ण

यहाँ यह महिलाओं और सज्जनों, कोड ही है!

>>> code = "R=range;print hex(int(''.join(`i/2%2`for i in R(38198)if all(i%x for x in R(2,i))),2))[2:-1]"
>>> len(code)
92
>>> exec code
d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626ba6aeccde7294
>>> import hashlib; hashlib.sha256(code).hexdigest()
'60fa293bbe895f752dfe208b7b9e56cae4b0c8e4cdf7c5cf82bf7bab60af3db6'

मारज़ियो ने यह कहकर एक चतुर संकेत छोड़ दिया कि "यह थोड़ा संकुचित हो जाता है जिससे थोड़ी संख्या में बड़ी संख्या में हैंडलिंग होती है "। मुझे यकीन था कि "छोटा सा" दुर्घटना से इटैलिक नहीं था, इसलिए मैंने हेक्स स्ट्रिंग को बिट्स में बदल दिया और पैटर्न खोजने की कोशिश की। मैंने सोचा था कि सबसे पहले वह बिट्स के रूप में सभी अपराधों का प्रतिनिधित्व कर रहा था और उन्हें एक साथ जोड़ रहा था, लेकिन यह काम नहीं किया। तब शायद केवल कुछ अंक ले रहे हैं, या बिट स्ट्रिंग में सभी शून्य को छोड़ रहे हैं - फिर भी नहीं। शायद यह पहले कुछ अपराधों में से सबसे कम-महत्वपूर्ण-बिट का एक बिटस्ट्रिंग है? काफी नहीं। लेकिन अंततः मुझे वह मिल गया जो काम करता था - यह पहले के कई-कई अपराधों से दूसरे-कम-महत्वपूर्ण बिट का एक बिटस्ट्रिंग है।

इसलिए, मेरा कोड बस यही करता है: बस पर्याप्त प्राइम उत्पन्न करें, प्रत्येक का दूसरा बिट लें ( i/2%2), उन्हें बाइनरी स्ट्रिंग के रूप में संक्षिप्त करें, फिर इसे बेस -10 ( int(..., 2)) और फिर बेस -16 ( hex(...)) में परिवर्तित करें ।


1
महान! मैं गोल्फ को कोड करने के लिए नया हूं, लेकिन अन्य लोगों को "यह कैसे करना है" की खोज करने में मज़ा देने के लिए हैश सामान एक अच्छा तरीका है। मैं दो दिन इंतजार करूंगा, फिर एक इनाम खोलूंगा (कि मैं विश्वास पर इनाम दूंगा :)।
मार्जियो डी बियासी

5
@MarzioDeBiasi: निश्चित रूप से यह काम करता है! या शायद यह कहना बेहतर होगा कि इनाम के कारण से पहले ही आप इसे पुरस्कृत करेंगे, और यदि विजेता अपना जवाब 2 वें स्थान पर जीत से प्रकट नहीं करता है, आदि ... जब आपके पास नहीं है तो विश्वास पर भरोसा क्यों करें ?
क्लाउडी

हैशलीब में कोड क्यों नहीं गिना गया है? क्या यह आउटपुट उत्पन्न करने के लिए कोड नहीं चलाया जा रहा है?
फिल्कोब्बरन

2
@philcolbourn: कोई भी कोड hashlib का उपयोग नहीं करता है। यह सिर्फ sha256 हैश उत्पन्न करने के लिए है तो कल मैं यह साबित कर सकता हूं कि जब मैंने पहली बार यह पोस्ट किया था तो मैंने कोड लिखा था। कल देखेंगे!
Claudiu

@ कलैदु: अब आप मुझे समझाएं कि आपने समस्या को कैसे क्रैक किया! बहुत बढ़िया!
रुबिक

9

हास्केल, 105

SHA1 हैश: a24bb0f4f8538c911eee59dfc2d459194ccb969c

आउटपुट:

d9a6b63356a7954b29b0ac7f2aaa6d19b84b4cf8b62aac95a14b4ea59db3e7c94c4959ec94b3aa6c938f115a4d397582ecea24ccd32dc393384eb7a60dd2b5372354ad1b79aa6e495552945aa73a6ae9e452cd2d79adc612b5995bb47651174e94f39aa2e7156a55144d4e4aa35c2fab63ccb5a6a492968a2ec3d8889b8ca916f533225ba2e2cc1b27d4e8db17a43985caaa5b4f3624d3c6f694add70f7124e1b1c5ef65356c8dd71a871e25df5dc013b26f5a572898bd416604eda252c9ac83b36c567ed1c6cc534a62c559a9b2d4af22a5a9f4b2992332f8fbae486a8a9ab5467a36599f92d325b519bd8a4a4962a5e459fbe5baa235dda9361da9c96989776ab2342d1d2261c5c2661ce2767452a5d984b98aa6b514ec2958b2bc96161648f5c5bd2f321b3d4f4b2eb26b9ad932a44b5cbc92b7b32639fa422d64ed1a79494ca3b785b2a6e28cd95590e1a8874b60a6e1bac4bbec32397690a6b4c665796191aa3d54b7183d154b06db308a4d4aa135755d3bd998ac555b10ddb3e2ccf15eb32b5390b6ee2bac8f888d955a75df592d1c5a4ce8f4ea48b956dea09291a9154c55d5e93a768e04bae7b2aae9ab2ad62333453dc4e952e36a4750baafe4e591a314639526b38b4cbcaa5a927aabada6db532e97066dba3a66494d95d765c2aac31a92933fcac26c2b375513c9884a5c626ba6aeccde7294

संपादित करें: कोड:

import Numeric;f(x:z)s=f[y|y<-z,0/=mod y x]$s*2+quot(mod x 4)2;f[]s=s;main=putStr$showHex(f[2..38198]0)""

मैं मुद्रण (पुटस्ट्र) को छोड़कर किसी भी पुस्तकालय के कार्यों का उपयोग नहीं करने के बारे में नियम से चूक गया। मुझे लगता है कि गणितीय ऑपरेटरों, जबकि वे तकनीकी रूप से कार्य कर रहे हैं, की अनुमति है।


9

सी, 136 116 109 103 अक्षर

ठीक है, यहाँ मेरा प्रयास है:

i;p;q;main(n){for(;n++,q<4032;){for(i=1;++i<n&&n%i;);if(i==n)p+=p+(n&2)/2,p=++q&3?p:printf("%x",p)*0;}}

MD5 hash = f638552ef987ca302d1b6ecbf0b50e66

1
चूंकि printfलिखित चरित्र की संख्या, जो हमेशा गैर-शून्य होती है, यहां लौटाता है, आप एक चार्ट को बचाने के !printf(...)बजाय उपयोग कर सकते हैं printf(...)*0
pastebin.com 0mr8spkT

@ace * थप्पड़ माथे * आह, मैंने ऐसा क्यों नहीं सोचा ?? धन्यवाद ऐस, हमेशा की तरह :-) (मई के रूप में अच्छी तरह से कोड को छोड़ दें, क्योंकि यह एमडी 5 हैश से मेल खाने वाला है।)
स्क्विश ओस्सिफ्रेज

7

जेएस, 764

यदि हम इस स्ट्रिंग को बेस 64 मानते हैं, तो हमारे पास अन-बेस-64-एड संस्करण का उपयोग करके एक छोटा संस्करण हो सकता है:

btoa("wÖºo­÷离÷ÛÖôiÎßÙ¦éÝ}oÎáÇüo­iÏyk^áæ¹õÖ÷{·=áÎ=ç×÷÷i®÷×^ZáÝýï6yÇÛw}swßÎo¶ºÑ×voûÛ~xiÝ[ïÖéî=çv÷Zk½Ú駽{vqÝïÖs­vo}å¶øï®u×¾÷÷õ¦¶{½yé®y×áîk~\Ùöëwoºkv÷¯Ùç7wÏ<õ¿kÝz÷Ûn[kg¶qÍ[Û·x{Ç[׶¸ßß9q¦å¾ß­¸ww:¯xi×{ÑþõÛµoW9yþ¹ßñ×{Õ¯;Õí¹uþ]sMwonå®{ÛÏ|mÞ5ë­8yÖ¶çg=iÏ7o~ç®ÞwW:qÎw᮶s}kÖöwÛf¹k×øoo}Û}öÇÛiî<é¯õ¦ùã®Úß®}õÿvw}¹o}mßá®=ëf¹{}}·¹m¦¶ß]kÝúÕÖ½sÞ½óÞûé¦ößÕݶëW9snºÕǶï®øçf¹wß8oßk¦ù×ÛÞ|ofÜ÷­z×®<9mÝßm[ÝÞá½onõ§}ßf¸á¾\mÏvo¶÷Û­ý}®6ÙÞ¸yÝZïÞ=áÆ·o¿9ofº{owÞy÷GµkÏ;á¾´k§µm§8m·ßmýï¯tk¦øs®¹ïÞµ÷VÝÞxo½|ÝÝyá½:u½ôñ®á¦µßùåÝÛwß|iÎyå½tuÖ÷{g^^o}çto§Ù¶ñÿ<ñßyå®ùuþ}ÙÝ\å®{Çøy®<oÞzuæ´÷oukÝyáÎyw½Ý®úñí8m§»of{ÖÙ§zÛ}÷ãÝs½çg·é®;çFÚi÷¸{uk}xëyÛ¦÷ñ¾mÆå¯ví¦iÖºu¾wÙï{Ó®m­Úë®=áßyw¾¹sfs}Z÷owÝ÷snÙ½ûçwsß<á®\ënk¦qÇ^ïox")

लेकिन मुझे लगता है कि लेखक चाहता है कि हम इसके बजाय गैर-यादृच्छिक स्ट्रिंग के पीछे तर्क खोजें।


1
"डाउनवोट्स रश" से बचने के लिए मैंने प्रश्न में कुछ विवरण जोड़ दिए :-)
Marzio De Biasi

4

मैथमेटिका - 56

रहस्य पहले से ही हल है, इसलिए सिर्फ विचार को लागू करना

⌊.5Prime@Range@4032⌋~Mod~2~FromDigits~2~IntegerString~16

अच्छा लगा। मैं उत्सुक हूं कि अब सबसे छोटी संभावना क्या है कि बिल्ली बैग से बाहर हो जाए
क्लाउडी

क्या आप कहते हैं कि "कोई पुस्तकालयों (आउटपुट को प्रिंट करने के लिए आवश्यक एक को छोड़कर)"?
पीटर टेलर

@PeterTaylor हां, कोई आयात नहीं - कोई पुस्तकालय नहीं।
बेंत की मार

टिप्पणियों को देखते हुए, मुझे नहीं लगता कि ओपी ने इसका अर्थ कैसे समझा।
पीटर टेलर

3

जे - 46 चार

मुझे कोई आपत्ति नहीं है, बस जे गोल्फ को पोस्टरिटी के लिए यहां लॉग इन कर रहा हूं। चाल समझ पाने के लिए पर्याप्त चतुर नहीं था।

4[1!:2&4'0123456789abcdef'{~#.2|<.-:p:i.1007 4

व्याख्या की:

  • p:i.1007 4- 0 से पूर्णांकों की 1007-पंक्ति, 4-कॉलम मैट्रिक्स बनाएँ, फिर उन पूर्णांकों के लिए अभाज्य संख्याएँ लें। हाँ, p:एक J बिल्टिन है। हां, हम चार प्राइम्स कम हैं।

  • 2|<.-:- प्रत्येक संख्या को हल करें ( -:), इसे फर्श करें ( <.), और उस मोडुलो 2 ( 2|) को लें। यह अगले-टू-लीज़ महत्वपूर्ण बिट लेने के समान है।

  • #.- परिणाम की प्रत्येक पंक्ति को आधार 2 से पूर्णांक में परिवर्तित करें। यह हमें 0 से 15 तक 1007 नंबर देता है।

  • '0123456789abcdef'{~#.- बिट्स के इस मैट्रिक्स की प्रत्येक पंक्ति को एक संख्या के लिए बाइनरी के रूप में लें, और उस संख्या का उपयोग हेक्स अंकों की सूची से चयन करने के लिए करें। यह हर चार बिट्स को हेक्स में परिवर्तित करता है।

  • 1!:2&4- जम्मू दुभाषिया में 256 चर से अधिक लंबे समय तक तार लगाने की समस्या है, इसलिए हमें इस डेटा को सीधे stdout में भेजना होगा। तुम कुछ जीतते हो तो कुछ हारते हो।

  • 4[- अंत में, 1!:2आउटपुट से अनुपस्थित 4 से परिणाम को छोड़ें और परिणाम दें । हम ऐसा इसलिए करते हैं क्योंकि यह उन अंतिम चार अपराधों को शामिल करने और यहां खाली परिणाम देने से कम है।


0

जेएस, 503

@Xem विचार के बाद:

s='Ù¦¶3V§K)°¬*ªm¸KLø¶*¬¡KN¥³çÉLIY쳪lZM9uìê$ÌÓ-Ã8N·¦\nÒµ7#T­yªnIURZ§:jéäRÍ-y­Æµ[´vQNó¢çjUMNJ£\/«c̵¦¤.ÃØ©õ3"[¢âÌ'+"'"+'ÔèÛ¤9ʪ[O6$ÓÆö­×q$á±Åïe5l×%ß]À²oZW(½Afí¢Rɬ³lV~ÑÆÌSJbÅY©²Ô¯"¥©ô²#2øû®HjµFz6YÓ%µ½JIb¥äYûåº\n5Ý©6©Éiwj²4-"aÅÂfâvtR¥Ù¹¦µì)X²¼HõŽ/2=OK.²kÙ2¤K\¼·³&9úB-díyIL£·²¦âÙUá¨K`¦áºÄ»ì29v¦´Æeyaª=T·=KÛ0MJ¡5u];Ù¬U[ݳâÌñ^³+S¶î+¬ZußY-ZLèôêH¹VÞ ©LUÕé:vºç²ªé«*Ö#3E=ÄéRãjGPº¯äå£c&³L¼ªZz«­¦ÛS.mº:fIM×eªÃ?ÊÂl+7UÉJ\bk¦®ÌÞr'
r=''
for(var i=0;i<s.length;i++) r+=s.charCodeAt(i).toString(16);
console.log(r)

0

गणितज्ञ, ५५

Prime~Array~4031~BitAnd~2~FromDigits~2~IntegerString~16

गणितज्ञों पर परीक्षण 8. यह दो टिप्पणियों का उपयोग करता है:

  • Mathematica FromDigitsवास्तव में दिए गए अंकों की सीमा की जांच नहीं करता है, इसलिए यदि आप इसे उस फॉर्म की एक सूची पर लागू करते हैं जो {2,0,2,2,0,...}आपको सिर्फ दो बार परिणाम मिलता है जैसे कि आवेदन करने के लिए {1,0,1,1,0,...}। लेकिन यह वास्तव में BitAnd2 के साथ primes द्वारा उत्पन्न प्रपत्र है ।
  • संख्या का अंतिम बिट जिसका हेक्साडेसिमल प्रतिनिधित्व हम चाहते हैं वह शून्य होना चाहिए (जैसा कि स्ट्रिंग द्वारा समाप्त होता है) लेकिन दो का एक कारक वास्तव में वही है जो हमें पिछले अवलोकन का उपयोग करने से मिलता है, इसलिए सब कुछ पूरी तरह से एक साथ फिट बैठता है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.