कोड बदलें, अनुक्रम बदलें: पुलिस


27

यह एक चुनौती है। लुटेरों के धागे के लिए, यहां जाएं

इस चुनौती में पुलिस द्वारा चुने गए दो OEIS अनुक्रम शामिल हैं - S 1 , S 2 - और उन अनुक्रमों को कितनी अच्छी तरह से गोल्फ और ऑब्सफैकेट किया जा सकता है।

पुलिस की चुनौती

एक पुलिस वाले के रूप में आपकी चुनौती एक स्वतंत्र रूप से उपलब्ध भाषा और दो OEIS दृश्यों को चुनना है । फिर, उस भाषा में कोड लिखें जो इनपुट n लेता है और S 1 (n) का उत्पादन करता है । जब कि कोड एक से संशोधित किया गया है Levenshtein दूरी की एक्स (कोई अधिक से अधिक एक्स के साथ वर्ण 0.5 * (length A)), और कोड में बदल बी एक ही भाषा में, यह तो एस का उत्पादन होगा 2 (एन)। आपको वास्तव में यह कोड बी लिखना चाहिए , लेकिन इसे तब तक प्रकट न करें जब तक कि आपकी चुनौती सुरक्षित न हो (नीचे देखें)।

पुलिस द्वारा सबमिट की भाषा नाम, पूरा कोड शामिल होना चाहिए एक , की बाइट गिनती एक , एक्स कितने परिवर्तन उनके गुप्त को पाने के लिए के मूल्य में बी कोड, और चुने हुए एस 1 और एस 2 अनुक्रम संख्या। आप चुन सकते हैं कि क्या प्रत्येक अनुक्रम 0-अनुक्रमित या 1-अनुक्रमित है, लेकिन कृपया इसे अपने सबमिशन में निर्दिष्ट करें।

किसी विशेष सबमिशन को क्रैक करने के लिए, लुटेरों को उसी भाषा (और संस्करण) में एक प्रोग्राम सी के साथ आना चाहिए जो एस 2 (एन) का उत्पादन करता है और वाई चरित्र (साथ Y <= X) से दूर होता है । लुटेरों को ठीक उसी बी कोड को खोजने की आवश्यकता नहीं है जो पुलिस (चुपके से) का उत्पादन करती है।

जीत और स्कोरिंग

यदि आपका पुलिस जवाब 7 दिनों (168 घंटे) के भीतर नहीं फटा है, तो आप अपना खुद का बी समाधान प्रकट कर सकते हैं, जिस बिंदु पर आपका उत्तर सुरक्षित माना जाता है। जब तक आप अपने समाधान को प्रकट नहीं करते हैं, तब भी यह लुटेरों द्वारा क्रैक किया जा सकता है, भले ही 7 दिन पहले ही बीत चुके हों। यदि आपका उत्तर क्रैक हो जाता है, तो कृपया अपने उत्तर के शीर्षलेख में, इसी लुटेरे के उत्तर के लिंक के साथ इंगित करें।

सबसे छोटी A के साथ अनियोजित सबमिशन होने से पुलिस जीत जाती है । यदि बंधा हुआ है, तो सबसे छोटा एक्स टाई-ब्रेकर के रूप में उपयोग किया जाएगा। यदि अभी भी बंधा हुआ है, तो पहले वाला सबमिशन जीत जाएगा।

आगे के नियम

  • आपको हैशिंग, एन्क्रिप्शन, या रैंडम नंबर जेनरेशन के लिए किसी भी बिल्ट-इन का उपयोग नहीं करना चाहिए (भले ही आप एक निश्चित मूल्य पर रैंडम नंबर जनरेटर को बीज दें)।
  • या तो कार्यक्रमों या कार्यों की अनुमति है, लेकिन कोड एक स्निपेट नहीं होना चाहिए और आपको REPL वातावरण नहीं मानना ​​चाहिए।
  • आप इनपुट ले सकते हैं और किसी भी सुविधाजनक प्रारूप में आउटपुट दे सकते हैं । दोनों अनुक्रमों के लिए इनपुट / आउटपुट विधियाँ समान होनी चाहिए।
  • इस चुनौती के लिए लेवेन्शेटिन दूरी के लिए निश्चित कैलकुलेटर यह ग्रह कैल्क पर एक है
  • CnR चुनौती होने के अलावा, यह इसलिए सभी सामान्य गोल्फिंग नियम लागू होते हैं।

इसके अलावा, यदि आप इस प्रश्न में कुछ बदलते हैं, तो सुनिश्चित करें कि आप लुटेरों को अपडेट करते हैं।
mbomb007

क्या होगा अगर कोई पुलिस अनुक्रम बनाने वाले वास्तविक कोड के संबंध में एक फ़ंक्शन / चर वास्तव में बड़ा है? इस मामले में इसकी लेव दूरी कम होने से कोई भी अनुक्रम बनाना संभव होगा(0.5*len(A))
हैशकोड 55

@ hashcode55 दो चीजें - 1) जो पुलिस के धागे को जीतने के लिए एक अच्छा उम्मीदवार होने की संभावना नहीं है। 2) अगर यह बहुत बड़ा है, तो यह भी लुटेरों के लिए एक अच्छा रास्ता देता है।
AdmBorkBork

1
" यह कोड-गोल्फ है इसलिए सभी सामान्य गोल्फिंग नियम लागू होते हैं " इसका मतलब यह है कि कोड को जितना संभव हो उतना गोल्फ होना चाहिए, या क्या इसे जानबूझकर बहुत अधिक क्रिया / अजीब तरीके से लिखा जा सकता है ताकि यह कोड बी के समान हो ?
smls

जवाबों:


10

ब्रेन-फ्लैक , 28 बाइट्स, 4 की दूरी, A002817 , A090809 क्रैक

यह उत्तर 1-अनुक्रमण का उपयोग करता है

(({({}[()])}{}){({}[()])}{})

इसे ऑनलाइन आज़माएं

रुचि रखने वाले किसी भी व्यक्ति के लिए 27475 वैध ब्रेन-फ्लैक प्रोग्राम हैं जिनमें इस कार्यक्रम से दूरी 4 और 27707 की दूरी 4 या उससे कम है। इसलिए एक ब्रूट फोर्स सॉल्यूशन एक उपभोक्ता ग्रेड कंप्यूटर पर संभव होगा।


यदि आप इसके X = 4बजाय यह पढ़ने के लिए शायद छोटा और तेज होगा Levenshtein distance of 4
mbomb007

1
@ mbomb007 मैं व्यक्तिगत रूप से थोड़ा भ्रमित हो जाता हूं जब चुनौतियां उन चीजों के लिए खड़े होने के लिए पत्र चर का एक गुच्छा का उपयोग करती हैं जो मैं भ्रम से बचने की कोशिश कर रहा था। मैंने इसे अब छोटा कर दिया है, उम्मीद है कि बिना किसी भ्रम के।
गेहूं जादूगर

सिकुड़ा हुआ । यदि हर कोई प्रश्न पढ़ता है, तो उन्हें इसे प्राप्त करना चाहिए। Xवास्तव में एकमात्र चर है जो उन्हें जानना आवश्यक है।
mbomb007

@ mbomb007 हालांकि, सवाल भी एक बाइट गिनती के लिए पूछता है।
DLosc


6

7 , 33 अक्षर, 13 बाइट्स, X = 10, A000124A000142 , सुरक्षित

171720514057071616777023671335133

इसे ऑनलाइन आज़माएं!

लेवेंसहेटिन की दूरी को पात्रों के संदर्भ में मापा जाता है, इसलिए मैंने उन वर्णों के संदर्भ में कार्यक्रम लिखा है जिनमें यह ऊपर है (और इसे ऑनलाइन आजमाएं! हालाँकि, प्रोग्राम को 7 के उप-बाइट एन्कोडिंग का उपयोग करके डिस्क में संग्रहीत किया जाता है, जिसका अर्थ है कि कार्यक्रम वास्तव में निम्नलिखित हेक्सडंप है (इस प्रकार 13 बाइट्स लंबा):

00000000: 3cf4 2982 f1ce 3bfe 13dc b74b 7f         <.)...;....K.

(क्योंकि लेवेंसहाइट दूरी को पात्रों के संदर्भ में मापा जाता है, आप आवश्यक रूप से यहां 10 बाइट्स जोड़ / हटा / बदल नहीं रहे हैं, इसलिए संभवतः मूल ASCII के साथ काम करना सबसे अच्छा है।)

लिखित औजार A000124 (त्रिकोणीय संख्या + 1) के रूप में कार्यक्रम; किसी भी दरार को A000142 (भाज्य) को लागू करना चाहिए। दोनों प्रोग्राम स्टड से इनपुट लेते हैं (दशमलव पूर्णांक के रूप में), स्टडआउट के लिए उनका आउटपुट लिखते हैं, और 1 इनपुट का अर्थ है अनुक्रम का पहला तत्व (और दूसरा तत्व के रूप में 2 का इनपुट)।

उम्मीद है कि बहुत अधिक एक्स मूल्य लोगों को कार्यक्रम को मजबूर करने से रोक देगा, इस बार (जो 7 में पुलिस और लुटेरों की प्रविष्टियों के साथ हमेशा जोखिम होता है)।

समाधान

177172051772664057074056167770236713351353

इसे ऑनलाइन आज़माएं!

मूल से अंतर:

17 172051 405707 1 61677702367133513 3
17 7 172051 77266 405707 405 61677702367133513 5 3

मेरे पास इन कार्यों के लिए तैयार किए गए स्पष्टीकरण नहीं हैं, इसलिए स्पष्टीकरण प्राप्त करने में मुझे थोड़ा समय लगने वाला है, क्योंकि मैं इसे लगभग खरोंच से निकालने की कोशिश करने जा रहा हूं। उम्मीद है कि आखिरकार एक स्पष्टीकरण होगा।



4

पर्ल 6 , 10 बाइट्स, X = 1, A000012A001477

फटा!

*[0]o 1***
  • S 1 = A000012 = 1,1,1,1,1,...= सभी 1 का क्रम। (0 अनुक्रमित)

  • S 2 = A001477 = 0,1,2,3,4,...= nonnegative पूर्णांक। (0 अनुक्रमित)

इसे ऑनलाइन आज़माएं!

पर्ल 6 रिलीज़ 2017.01 के साथ, और टीआईओ पर चलने वाले पर्ल 6 संस्करण के साथ काम करने की पुष्टि की गई ।

( एक आगे करने के लिए golfed किया जा सकता है 1***-। मुझे आशा है कि यह यह भी रूप में यह है की अनुमति दी है)


3

पर्ल 6 , 13 बाइट्स, एक्स = 1, ए 161680ए 1000217

सुरक्षित!

{[+] [,] ^$_}
  • एस 1 = ए 161680 = 0 0 1 3 6 10 15 21...= शून्य त्रिकोणीय संख्याओं के बाद।
  • S 2 = A000217 = 0 1 3 6 10 15 21 28 ...= त्रिकोणीय संख्या।
  • शून्य अनुक्रमित।

इसे ऑनलाइन आज़माएं!

(TIO पर चलने वाले पर्ल 6 संस्करण के साथ काम करने की पुष्टि की गई।)

समाधान

{[+] [\,] ^$_}

मूल कैसे काम करता है:

{           }  # A lambda.
          $_   # Lambda argument.                     e.g. 4
         ^     # Range from 0 to n-1.                 e.g. 0, 1, 2, 3
     [,]       # Reduce with comma operator.          e.g. 0, 1, 2, 3
 [+]           # Reduce with addition operator.       e.g. 6

समाधान कैसे काम करता है:

{            } # A lambda.
           $_  # Lambda argument.                     e.g. 4
          ^    # Range from 0 to n-1.                 e.g. 0, 1, 2, 3
     [\,]      # Triangle reduce with comma operator. e.g. (0), (0,1), (0,1,2), (0,1,2,3)
 [+]           # Reduce with addition operator.       e.g. 10

इस तथ्य को उजागर करता है कि संख्यात्मक ऑपरेटर इसके अलावा किसी सूची को उसके तत्वों की संख्या मानते हैं, इसलिए उदाहरण में योग है 1 + 2 + 3 + 4 = 10

और हाँ, "कम कॉमा ऑपरेटर के साथ" मूल में नो-ओप थोरा कोड-गोल्फ नियमों की नकल करता है, लेकिन मैं इसे एक मूर्खतापूर्ण एल्गोरिथ्म के रूप में देखना पसंद करता हूं, जो संभव के लिए जितना संभव हो उतना व्हाट्सएप (व्हाट्सएप) के लिए तैयार किया गया है। यह क्या है... :)


यदि मैं समय या झुकाव (और पर्ल का ज्ञान) था, तो यह मजबूर होने के लिए भीख मांग रहा है।
रोहन झुनझुनवाला

यह लंबे समय तक सुरक्षित रूप में चिह्नित होने के लिए जीवित रहा है
f'nɪt Febk

2

जेली , 11 बाइट्स, एक्स = 5, ए 005185ए 116881

ịḣ2S;
1Ç¡ḊḢ

यह एक पूर्ण प्रोग्राम है जो पूर्णांक को कमांड-लाइन तर्क के रूप में लेता है और पूर्णांक को प्रिंट करता है।

दोनों अनुक्रमों को OEIS पर अनुक्रमित किया गया है, अर्थात, A005185 1-अनुक्रमित है और A116881 0-अनुक्रमित है।

इसे ऑनलाइन आज़माएं!


2

जावास्क्रिप्ट, 41 बाइट्स, 3 की दूरी, A061313 , A004526 , फटा

f=x=>{return x>1?x%2?f(x+1)+1:f(x/2)+1:0}

इसे ऑनलाइन आज़माएं

1 आधारित अनुक्रमण का उपयोग करता है, समाधान 0 आधारित अनुक्रमण का उपयोग करता है।

एक बार फिर, एक अलग समाधान ...

f=x=>{return x>1?x<2?f(x-1)+1:f(x-2)+1:0}


3
वैसे, आपको tio.run permalinks का उपयोग नहीं करना चाहिए । वे जल्द ही काम करना बंद कर देंगे।
डेनिस

^ इसके बजाय tio.run/nexus का उपयोग करें ।
mbomb007 22

1

पर्ल 6 , 19 बाइट्स, X = 1, A000045A000035

फटा!

{(0,1,*+*...*)[$_]}
  • S 1 = A000045 = 0 1 1 2 3 5 8 13 21 34...= "फाइबोनैचि संख्या"। ( 0-अनुक्रमित )
  • S 2 = A000035 = 0 1 0 1 0 1 0 1 0 1...= "अवधि 2"। ( 0-अनुक्रमित )

इसे ऑनलाइन आज़माएं!

(TIO पर चलने वाले पर्ल 6 संस्करण के साथ काम करने की पुष्टि की गई।)



1

वोल्फ्रामअल्फा, 18 बाइट्स, एक्स = 1

Math_junkie द्वारा क्रैक किया गया!

(sum1to#of n^1)*2&

कभी-कभी वोल्फ्रामअल्फा वास्तव में इस तरह से एक शुद्ध कार्य को कार्यात्मक रूप में प्रदर्शित करने में सक्षम होगा (दूसरी बार यह भ्रमित हो जाता है); लेकिन यह प्रसन्नतापूर्वक दिए गए इनपुट के साथ लागू किया जा सकता है - उदाहरण के लिए, (sum1to#of n^1)*2&@5पैदावार 30

S1 = A002378 (उच्चारण संख्या)

S2 = A000537 (पहले nक्यूब्स का योग )

दोनों क्रम 0-अनुक्रमित हैं।




1

जावास्क्रिप्ट, 15704 बाइट्स, 2 की दूरी, A059841 और A000004 - फटा

यह समाधान बहुत लंबा है, इसलिए आप इस गिथब जिस्ट पर पूर्ण कोड पा सकते हैं

मूल उत्तर (यह एक) 1 अनुक्रमित है। (मुझे पता है कि यह बहुत लंबा रास्ता है, यह सिर्फ मनोरंजन के लिए है।)


फटा । इसके अलावा, बिल्कुल बेकार कोड जोड़ना! + [] - (! +]] वास्तव में नियमों की भावना में नहीं है
fɛn Febtəˈk

बस इतना पता है, यह जवाब इस चुनौती की ओपी के लिए कुछ मुद्दों का कारण बन रहा है। जाहिरा तौर पर यह पूरे पृष्ठ को अवरुद्ध करने का कारण बनता है क्योंकि यह स्केचिंग जावास्क्रिप्ट जैसा दिखता है। आप शायद बाहरी लिंक में कोड डाल सकते हैं? (सार, pastedump, आदि)
DJMcMayhem

असल में, मैंने इसे अपने आप में एक मुट्ठी में डाल दिया है। यदि आपके पास कोड कहीं और होगा, तो यदि मैं अपनी सीमा समाप्त कर चुका हूं तो इसे फिर से संपादित करने के लिए स्वतंत्र महसूस करें।
डीजेएमकेम

मुझे लगता है कि! + [] - (! + []) ऐसा करता है कि आप रूपांतरण को उलट नहीं सकते। लेकिन कुछ अन्य कचरा इसे लंबे समय तक बनाता है। समतुल्य कोड केवल 15640 बाइट्स है।
f --n 21tɪk

1

ब्रेन-फ्लैक , 16 बाइट्स, 4 की लेवेन्शेटिन दूरी, A000217 और A002378 - मार्टिन एंडर द्वारा क्रैक किया गया!

({({}[()])()}{})

इसे ऑनलाइन आज़माएं!

यह दरार करने के लिए काफी आसान होना चाहिए।



@WheatWizard ओह, वूप्स, मुझे एहसास नहीं था कि मैं भी भूल गया हूं।
DJMcMayhem

0

जावास्क्रिप्ट, 30 बाइट्स, 4 की दूरी, A000290 , A000079 , - फटा!

f=x=>{return x?2*x-1+f(x-1):0}

0-आधारित अनुक्रमण

@ कृति लिथोस का समाधान वास्तव में खान से अलग था

f=x=>{return x?f(x-1)+f(x-1):1}

इसे ऑनलाइन आज़माएं


1
यह है x**2और नहीं2**x
क्रिकटी लिथोस

मुझे लगता है कि यह A000290 है , A000079 नहीं।
betseg

@KritiiLithos यह दोनों माना जाता है। जब मैंने दूसरा छोर बदला तो मैंने शीर्ष पर गलत अनुक्रम लिंक बदल दिया।
f --n 20tɪk


0

जावास्क्रिप्ट (ES6), दूरी 1, A000079 और A000004 है - फटा

as=function(){ return 2*2**((11)*-1*~arguments[0]/11-(4-(as+[]).length%89))-(as+[]).length%7}

मूल उत्तर (यह एक) 0 आधारित है। अब यह फटा है, यहाँ मूल बी फ़ंक्शन है:

as=function(){ return 2*2**((1^1)*-1*~arguments[0]/11-(4-(as+[]).length%89))-(as+[]).length%7}

1
मैं दो अलग-अलग वातावरणों के बीच असंगत व्यवहार करने के लिए अपना क्रैक कोडगोल्फ.स्टैकएक्सचेंज.com/a/109976/64505 प्राप्त करने में सक्षम था ।
f --n 21tɪk

0

पर्ल 6 , 7 बाइट्स, X = 2, A059841A001477

फटा!

+(*%%2)
  • S 1 = A059841 = 1 0 1 0 1 0 1 0...= "* अवधि 2: दोहराएँ (1,0)"। (0 अनुक्रमित)
  • S 2 = A001477 = 0 1 2 3 4 5 6 7...= "द नॉननेगेटिव पूर्णांक"। (0 अनुक्रमित)

इसे ऑनलाइन आज़माएं!

(TIO पर चलने वाले पर्ल 6 संस्करण के साथ काम करने की पुष्टि की गई।)


1
क्या मैं इसे ठीक से कर रहा हूं? < codegolf.stackexchange.com/a/110001/60793 >
जॉय मैरिएर

0

जावा 7, 4 की लेवेन्शिन दूरी, A094683 , A000290 , क्रैक

int x{double r=1;for(int i=0;i<42;i++)r=r/2+n/r/2;int k=(int)((int)n*(float)n/Math.pow(n,(Math.sin(n)*Math.sin(n)+Math.cos(n)*Math.cos(n))/2));return n%4%2==(int)Math.log10(Math.E)/Math.log((double)'H'-'@')?(int)r:k;}

0 अनुक्रमित।
यहाँ कोशिश करो!


@LliwTelracs ने किया कि पहले 15 गैर-नकारात्मक पूर्णांकों के लिए, मेरा अद्यतन उत्तर देखें।
peech

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