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


15

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

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

पुलिस कोड ए का निर्माण कर रहे हैं जो एस 1 का उत्पादन करते हैं और एक संख्या एक्स देते हैं जो दावा करते हैं कि बी 2 बनाने के लिए सबसे अच्छा लेवेंसहाइट दूरी (वर्णों में) संभव है जो एस 2 का उत्पादन करता है ।

लुटेरों की चुनौती

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

यदि आप इसे प्रबंधित करते हैं, तो समाधान के साथ एक उत्तर पोस्ट करें, पुलिस के उत्तर से लिंक करें, और पुलिस के उत्तर पर एक टिप्पणी छोड़ दें।

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

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

लुटेरों द्वारा (X - Y)*5 + 5उनकी प्रत्येक दरार के लिए रन बनाए जाते हैं , और लुटेरा समग्र उच्चतम स्कोर जीतता है।

आगे के नियम

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

जवाबों:


7

पाइके, 1 की लेवेनशेटिन दूरी, A036487 , A135628 - स्कोर 5

मैलाफिश द्वारा एक प्रविष्टि का क्रैक

wX*e

यहाँ यह कोशिश करो!

मूल कोड, X*e, चौराहों इनपुट, X, पलता है कि इनपुट द्वारा *, और आधा तो फर्श परिणाम, e

ट्रिक यह है कि 'X'बेस 96 के प्रतिनिधित्व में 56 है w, इसलिए wX56 की पैदावार होती है, जो कि इनपुट से फिर गुणा और आधा हो जाता है और आपको आवश्यकतानुसार 28 गुना इनपुट मिलता है।


वास्तव में मेरे पास क्या था। मेरी अपेक्षा से थोड़ा अधिक समय तक रहा
ब्लू

जैसे ही मैंने इसे देखा मैं जानता था कि यह इच्छित समाधान था।
जोनाथन एलन

4

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

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

इस उत्तर की खोज एक ब्रूट-फॉरेसर की मदद से की गई, जिसने 35,000 संभावित कार्यक्रम उत्पन्न किए (उनमें से बहुत से असंतुलित थे, और इस प्रकार अमान्य मस्तिष्क-फ्लैक कोड था, लेकिन मैंने बग के साथ रोल किया और वैसे भी उत्तर मिला)। यह लगभग 20 हज़ारवें कार्यक्रम का परीक्षण किया गया था, और इसे खोजने में लगभग एक घंटे का समय लगा (हालांकि मुझे नहीं पता कि मैं इसे खत्म करने के बाद कब से दूर था)।

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

#Push the sum of:
(

    #The (n-1)th triangular number, and the range [1, n] (The range doesn't count towards the sum I believe)
    ({(({})[()])}{})

    #Triangulate every number on the stack
    {{({}[()])}{}}

)

यह समझ में आता है क्योंकि OEIS कहता है:

N> 0 के लिए, इस क्रम की शर्तें A000124 a (n) = sum (i * A000124 (i), i = 0..n-1) से संबंधित हैं। [ब्रूनो बेर्सली, 20 दिसंबर 2013]

और A000124 त्रिकोणीय संख्याएं हैं। 1. हालांकि, मुझे बिल्कुल नहीं पता कि फ़ोरम क्या है, इसलिए मैं पूरी तरह से नहीं बता सकता कि यह कैसे काम करता है।


3

पर्ल 6, 19 बाइट्स, X = 1, A000045 → A000035

{(0,1,*+<*...*)[$_]}

+>के स्थान पर +<भी काम करेगा।

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

यह काम किस प्रकार करता है

infix ... सरल पुनरावर्ती दृश्यों के लिए काफी उपयोगी है। (0,1,*+*...*)मूल कोड का हिस्सा है, जो के लिए एक आशुलिपि है

(0, 1, -> $x, $y { $x + $y } ... *)

एक अनुक्रम निर्दिष्ट करता है जो 0 और 1 से शुरू होता है , फिर अनुक्रम के पूर्व के दो आइटमों के योग की गणना करके आइटम जोड़ता है।

इसके विपरीत, समता क्रम के निर्माण के (0,1,*+<*...*)लिए बाएं बिट-शिफ्ट ( +>, राइट बिट-शिफ्ट भी काम करेगा) का उपयोग करता है । चूंकि 1 शून्य इकाइयों को बाईं ओर स्थानांतरित करना 1 है , और 0 पर एक इकाई को बाईं ओर स्थानांतरित करना 0 है , हमें उनके और शून्य के वांछित वैकल्पिक पैटर्न मिलते हैं।


2

पर्ल 6 , 10 बाइट्स, दूरी 1 - स्कोर 5

एक प्रविष्टि की दरार smls द्वारा

*[0]o 1***

हो जाता है:

*[0]o 1*+*

यह ऑनलाइन की कोशिश करो!


बहुत बढ़िया! मैं इस समाधान के बारे में नहीं सोचता था, मेरा काम थोड़ा अधिक कठिन था और वास्तव में *[0]o वहां होना आवश्यक था। मुझे लगता है कि इसका मतलब है कि मैं अपनी "चाल" के आधार पर एक और चुनौती के साथ आ सकता हूं ... :)
19

मैं वास्तव में पर्ल को नहीं जानता, बस देखा ***और सोचा कि ऐसा लगता है कि यह डाइएडिक गुणन ऑपरेशन को प्रकट कर सकता है *, पिछले तर्कों के साथ, मुझे वास्तव में नहीं पता कि कोड वास्तव में क्या करता है। कुछ स्पष्टीकरण में संपादित करने के लिए स्वतंत्र महसूस करें!
जोनाथन एलन

2
1***के रूप में पार्स किया जाता है 1 ** *, यानी एक लैम्ब्डा जो "x की शक्ति के लिए 1" करता है। 1*+*के रूप में पार्स किया जाता है 1 * (+*), यानी एक लैम्ब्डा जो "1 गुणा (एक्स एक संख्या में परिवर्तित)" करता है।
SMLS

2

पर्ल 6 , दूरी 2, smls

मूल:

+(*%%2)

क्रैक:

+(*+0%2)

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


डारन, फिर से एक सरल समाधान, जिस पर मैंने विचार नहीं किया ... (मेरा बहुत अधिक मोटापा था +(^*Z%2)। मुझे लगता है कि मैं इन चुनौतियों का मसौदा तैयार करने में बहुत अच्छा नहीं हूं।
9

2

वोल्फ्रामअल्फा, दूरी 1, ग्रेग मार्टिन , A002378 , A000537

(sum1to#of n^1)^2&

यह काम किस प्रकार करता है

मुझे एहसास हुआ कि दिलचस्प है, (n * (n + 1) / 2) ^ 2 दूसरे अनुक्रम के लिए एक सूत्र है। चूँकि sum (1 से n) n * (n + 1) / 2 के बराबर है, मुझे सिर्फ * a ^ पर स्विच करना था।


आपको उसे सूचित करना चाहिए कि आपने उसका उत्तर
क्रैक किया है

अच्छी तरह से देखा गया! :)
ग्रेग मार्टिन

2

ब्रेन-फ्लैक , 20 बाइट्स, डीजेएमकेमहेम

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

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

({})प्रत्येक पुनरावृत्ति में मूल्य को दोगुना करने के लिए लूप की शुरुआत में जोड़ा गया ।


अच्छा! एफडब्ल्यूआईडब्ल्यू, 18 बाइट का समाधान मेरे पास था({(({}[()])){}}{})
जेम्स


1

जावास्क्रिप्ट ( ईएस 6), दूरी 1, सलाहकार

मूल:

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

क्रैक:

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

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

या

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

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

किसी तरह मैं इसे TIO और repl.it के बीच अलग तरह से व्यवहार करने में सक्षम था (बिल्कुल कोई सुराग क्यों 2 * 1 ^ ... repl.it के अनुसार 0 के बराबर होगा)


मैं बहुत गूंगा हूं, मैंने 2 को 0. में बदलने के बारे में नहीं सोचा था। यहां बी फ़ंक्शन है as=function(){ return 2*2**((1^1)*-1*~arguments[0]/11-(4-(as+[]).length%89))-(as+[]).length%7}:।


1

जावा, दूरी 4, Peech , 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;}

क्रैक:

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%1==(int)Math.log10(Math.E)/Math.log((double)'H'-'@')?(int)n*n:k;}
                                                                                                                                                          ^                                                         ^^^

रिटर्न n * n


1

जावास्क्रिप्ट, सलाहकार , 2 की दूरी, A059841 और A000004

केवल TIO लिंक के पीछे कोड छोड़ना क्योंकि यह साइट को तोड़ता हुआ प्रतीत होता है।

जिसका कोड @nderscore को धन्यवाद मैंने शुरुआती कोड को डिक्रिप्ट किया था

कुछ निरर्थक कोड थे जैसे कि !! [] + [] + [] के बजाय !! [] + []।

शुरुआत में! + [] - (! + []] (+ 1-1) के जोड़ ने डिक्रिप्शन को रोका।

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


1

पाइके, लेवेनशेटिन की दूरी 2, A008788, A007526

'SS^

यहाँ यह कोशिश करो!

यह काम किस प्रकार करता है

यह मिश्रित आधार रूपांतरण करता है।

'Sइनपुट n को पकड़ता है और स्टैक पर [1, ..., n] को धकेलता है । अगला Sइनपुट n लेता है और एक ही सरणी को एक बार फिर धकेलता है। 'स्टैक पर पिछले शीर्ष पर लागू होने वाली अगली कमांड का कारण लगता है; मैं विवरण पर थोड़ा फजी हूँ।

अंत में, ^मिश्रित आधार रूपांतरण लागू होता है, इसलिए [1, ..., n] [1, ..., n] f गणना करता है
a (n): = [1] n + n + (n) (n-1) ।। । + [एन!] 1 जहां कोष्ठक स्थान मान और संख्या को उनके दाईं ओर अंक का संकेत देते हैं।

अब, (n) = (1 + (1) (n-1) + (n-1) (n-2) (n-3) + ... + (n-1)!) N = n (! a (n) + 1) , जो एक ही पुनरावर्ती सूत्र है जो [A007526] में a (n) को परिभाषित करता है । चूंकि एक खाली राशि शून्य है, इसलिए (0) = 0 और आधार मामला भी मेल खाता है।


इतने प्रयासों से आपको यह कैसे मिला? मुझे आपकी सोची हुई प्रक्रियाओं में दिलचस्पी है
ब्लू

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