सीक्रेट स्वैपिंग सीक्वेंस की तलाश


19

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

आपका कार्य कुछ कोड लिखना है जो एक OEIS अनुक्रम को आउटपुट करता है, और कोड में अनुक्रम का नाम शामिल है ( A______) और एक दूसरे अलग अनुक्रम को आउटपुट करता है जब कोड में अनुक्रम का नाम दूसरे अनुक्रम के नाम में बदल दिया जाता है।

यहाँ हास्केल में एक उदाहरण है जो A000217 और A000290 के लिए काम करता है ।

f x|last"A000217"=='0'=x^2|1>0=sum[1..x]

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

फिर आप दो अनुक्रमों में से एक को प्रकट करते हैं, और दूसरे क्रम को गुप्त रखते हुए कोड। लुटेरे यह पता लगाने का प्रयास करेंगे कि छिपा हुआ क्रम क्या है। यदि कोई डाकू यह निर्धारित करने का प्रबंधन करता है कि आपका अनुक्रम क्या है (या कोई अन्य अनुक्रम जो मानदंडों को पूरा करता है) तो आप उत्तर देते हैं। यदि आपके उत्तर के एक सप्ताह में कोई भी ऐसा नहीं करता है तो आप अपने उत्तर को सुरक्षित मान सकते हैं और सत्यापन के लिए इच्छित समाधान को प्रकट कर सकते हैं। सुरक्षित उत्तर को क्रैक नहीं किया जा सकता है।

इनपुट आउटपुट

यहां से ले गए

आपका कोड एक फ़ंक्शन या पूरा कार्यक्रम हो सकता है जो एक मानक इनपुट विधि के माध्यम से n लेता है और अनुक्रम के n अवधि को OEIS पृष्ठ पर प्रदान किए गए सूचकांक द्वारा अनुक्रमित करता है।

आपको उस अनुक्रम के लिए OEIS b फ़ाइलों में दिए गए सभी मानों का समर्थन करना चाहिए, b फ़ाइलों में किसी भी संख्या को समर्थन की आवश्यकता नहीं है।

स्कोरिंग

आपका स्कोर आपके कोड में बाइट्स की संख्या कम बाइट्स बेहतर होगा।


1
आपका स्कोर आपके कोड में बाइट्स की संख्या कम बाइट्स बेहतर होगा। - यह टैग -कोड गोल्फ क्यों नहीं है ?
मिस्टर एक्सकोडर

@ Mr.Xcoder मैं भूल गया। इन बातों को बहुत ज्यादा न पढ़ें;)
गेहूं जादूगर

तो कोड को कुछ लंबाई (परिभाषित या नहीं?) या एन-वें तत्व का अनुक्रम अनुक्रम करना चाहिए?
डेड पॉसम

@DeadPossum n वें पद
मिस्टर एक्सकोडर

@WheatWizard का अनुमान है कि मैं कहीं और देख रहा था, लेकिन मॉनिटर। मेरा बुरा
मृत पोसुम

जवाबों:



5

पायथन 3 , 62 बाइट्स, A017016 ( फटा )

n=int(input())
print(sum(1for i in"A017016"if i>"0")*-~n//-~n)

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


मैंने इसे जितना संभव हो सके उतना अधिक बनाने की कोशिश की ...
श्री एक्सकोडर

1
@officialaimm मैंने उद्देश्य पर किया है। मैं इस पर आपत्ति करना चाहता हूं। मैं वास्तव में गोल्फ के बारे में परवाह नहीं करता, क्योंकि पायथन कोड-गोल्फ
ऑब्सफेकशन


वैसे, क्या यह इच्छित समाधान था?
पूरी तरह से

@totallyhuman हाँ, यह अनिर्णायक समाधान था।
श्री Xcoder

4

Japt , 13 बाइट्स ( फटा )

यदि कोई अन्य व्यक्ति इस पर एक छुरा लेना चाहता है, तो (कम से कम) एक अन्य समाधान है।

p#A000012uCnG

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


व्याख्या

#जाप में एक चरित्र का अनुसरण करने से हमें उस चरित्र का वर्ण मिल जाता है, इसलिए #A=65, बाकी की संख्या को जोड़ दिया जाता है, 65000012या हमें दे दिया जाता है 65000290

uमोडुलो विधि है (यह इस बात से भिन्न %है कि यह हमेशा एक सकारात्मक संख्या लौटाएगा)। विधि नंबर यह संख्या यह करने के लिए पारित कर दिया से लागू किया जाता है घटाता है। और क्रमशः 11 और 15 के लिए जाप स्थिरांक हैं। तो, हमें देता है । अब हमारे पास और । विधि नंबर यह पर लागू की गई (इस मामले में जो है, परोक्ष, इनपुट पूर्णांक को जन्म देती है कि हम में से 2 अंतिम सूत्रों दे रही है, संख्या इसे करने के लिए पारित कर दिया की शक्ति के लिए) और ।

nCGCnG4

65000012%4=065000290%4=2pUU**0U**2



1
@officialaimm: सही, अच्छी तरह से किया गया।
झबरा

चूँकि मैं जाप को नहीं जानता, इसलिए मैंने माना था कि उठाया जाने वाला सामर्थ्य था (sum_of_numbers_in_oeis(excluding 'A') + 1)%4। : D
आधिकारिक

1
@officialaimm: मैं लुटेरों को उन भाषाओं में चुनौतियों को देखना पसंद करता हूं जो वे नहीं जानते हैं :) मैंने वास्तव में इस उम्मीद के साथ पोस्ट किया था कि यह जाप से अपरिचित कोई व्यक्ति होगा जो इसे क्रैक करेगा।
झबरा

यदि स्ट्रिंग इनपुट की अनुमति है (तो 1-अनुक्रमित) A020338 भी काम कर सकता है ।
बब्बलर

4

MATL , 30 29 बाइट्स ( फटा )

A077430I\2-|Gw^1Mwx*10&Ylk1+&

A077430

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

-1 बाइट थैंक्स टू @ सेंचुरीज़


1
अब ठीक किया जाना चाहिए
Cinaski

1
बस एक संकेत: आप I1 बाइट के लिए `3` को बदल सकते हैं ।
Sanchises

@ धन्यवाद धन्यवाद! नहीं पता था कि I3
Cinaski

2
आपको तालिका 3 की जांच करनी चाहिए। l(एक) और O(शून्य) के साथ, आपको लगभग कभी भी अपने MATL कार्यक्रमों में स्थान का उपयोग नहीं करना चाहिए। संबंधित नोट पर, तालिका 7 को भी देखें, जिसमें कई उपयोगी पूर्वनिर्धारित स्थिरांक हैं (हालांकि सावधान रहें कि उदाहरण 4X2Z%के लिए आशुलिपि है 1Z%)
Sanchises


3

सी #, 28 बाइट्स ( फटा )

n=>n*n*("A000290"[6]<49?1:n)

A000290 के साथ काम करता है ।

इसे शुरू करने के लिए एक आसान।

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


यह अभी तक फटा नहीं जा सकता> _ <
श्री Xcoder

@ Mr.Xcoder अब कर सकते हैं :)
TheLethalCoder

1
क्रैकड (हालांकि वास्तव में क्रैक नहीं हुआ!)
झबरा

@ शागिर्द मैं सिर्फ गेंद को लुढ़कना चाहता था: पी
द लीथल कोडर

3

अजगर 2, 43 बाइट्स, A000079 ( फटा )

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

lambda n:((sum(map(ord,'A000079'))*2)%8)**n


@TheLethalCoder वेल .. यह फिट बैठता है, लेकिन यह एक नहीं है, जिसे मैंने चुना है। इसके अलावा मैंने आपकी टिप्पणी से पहले संपादन किया, और यह अब फिट नहीं है
डेड पॉसम

5
आपने इसे पोस्ट करने के बाद बदल दिया? थोड़ा अनुचित।
TheLethalCoder

@ TheLethalCoder मैंने इसे इस झूठे-सकारात्मक अनुक्रम से बचाने के लिए किया था: C
डेड पॉसूम

1
मुझे एक प्रविष्टि को संपादित करने के बारे में नहीं पता है, लेकिन ओपी में नियमों से, " यदि कोई डाकू यह निर्धारित करने का प्रबंधन करता है कि आपका अनुक्रम क्या है (या कोई अन्य अनुक्रम जो मानदंडों को फिट करता है) तो आप जवाब फटा है ", बस FYI करें।
Alleks

3

C #, 75 बाइट्स, ( फटा )

n=>{int r=1,e=3-0xA000244%2;for(;n>0;e*=e){r*=(n%2>0?e:1);n>>=1;}return r;}

A000244

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



@ लीन ने इसे क्या दिया? पहला क्रम?
TheLethalCoder

3
आप OEIS नंबर ले रहे हैं % 2- इसलिए यह प्रोग्राम शाब्दिक रूप से केवल दो काम कर सकता है , इसके परिणाम पर निर्भर करता है: एक के लिए 0और एक के लिए 1। इसलिए मैंने इसके स्थान पर एक विषम संख्या डाल दी, और चुनौती थोड़े ही फूटी।
लिन

@ लियन आह मान लीजिए, उस हिस्से को देखने से नहीं लगता।
TheLethalCoder

2

अजगर 2 , 53 बाइट्स, A000012 [फटा]

lambda x:len(`x**(sum(map(int,'A000012'[1:]))==22)`) 

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

अगला क्रम A055642 (दशमलव संख्या में अंकों की लंबाई) है। जिसके लिए संख्या स्वयं का मूल्यांकन करती है, क्योंकि OEIS में अंकों का योग 22 के बराबर है; इस प्रकार लेन (...) 'A055642' के लिए इनपुट संख्या की वास्तविक लंबाई की गणना करता है। दृश्यों के लिए A000012 (या A055642 के अलावा कोई भी। लेन हमेशा एक के बराबर होगा, क्योंकि संख्या में विकसित '1' होगा।



1

अजगर 3, 65 बाइट्स, A000027, फटा

a=lambda a,n=((int("A000027",11)-0x103519a)%100%30+1)/2:a//(14-n)

याय पागल अंकगणित!


उम, A004526, n=12जो सही लग रहा है देता है , लेकिन परिणाम एक सूचकांक से बंद हो जाएगा - क्या मैं बग के साथ दरार या बहुत चालाक लाल हेरिंग के लिए गिर गया?
जोनाथन एलन

न तो; आपने A004526 की गलत व्याख्या की है, जो स्पष्ट रूप से बताता है a(n) = floor(n/2); सूचीबद्ध अनुक्रम 0. से शुरू होता है, हालांकि, इसका इच्छित समाधान है।
pppery

ओह हां ऑफ़सेट - राइट (व्हीडब्ल्यू), धन्यवाद! अच्छी तरह से फटा
जोनाथन एलन

1

स्मालटाक, 148 बाइट्स, सुरक्षित!

|x o|x:=(16rA018253*0.00861-1445345)floor. o:=OrderedCollection new. 1 to:x/2 do:[:i|x\\i=0 ifTrue:[o add:i]].o add:x.^o at:stdin nextLine asInteger

A018253

इनपुट के रूप में पूर्णांक लेता है, अनुक्रम 1-आधारित है।

इच्छित दूसरा अनुक्रम A133020 हैA018253 के लिए राइटअप में संख्याओं के विभाजक से संबंधित अनुक्रमों के लिए प्रविष्टियों की एक सूची के लिए एक लिंक है । उस सूची में, A133020 वर्गों के विभाजक के अंतर्गत है: 10013 । यदि आप पूरे अनुक्रम को देखना चाहते हैं, तो कोड में Transcript show: o printString; cr.रिटर्न ^स्टेटमेंट से पहले डालें ।


1

हास्केल, 226 बाइट्स, सुरक्षित!

यकीन नहीं तो होशियार या बदसूरत, शायद दोनों ...

o n=read.pure.(!!n)$"A001906"
m::Integral a=>[a->a->a]
m=[const,(+),(-),(*),div,(^)]++(flip<$>m)
l=o 1:o 3-o 1:zipWith(m!!(o 6+o 3-o 2))(tail l)l
f=(l!!).((m!!(o 4+o 5+o 6-2*o 1-o 2))$sum[1|n<-[1..6],odd(o n)]).((m!!o 6)$o 3)

तो अब यह A001906 की गणना करता है , लेकिन यह बहुत सारे अनुक्रम उत्पन्न करने में सक्षम होना चाहिए।

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


हल: A131078

आश्चर्य है कि क्या यह बहुत मुश्किल था या किसी ने कोशिश नहीं की?

o 1करने के लिए o 6श्रृंखला संख्या के अंकों कर रहे हैं, mआपरेशन की एक सूची है। lएक पुनरावर्ती रूप से परिभाषित अनंत सूची है जिसमें श्रृंखला संख्या से प्राप्त पहले दो मान हैं और शेष दो पिछले एक से एक निश्चित ऑपरेशन का उपयोग करके गणना की गई है m। A001906 के मामले में, परिभाषा को सरल बनाया जा सकता है

l=0:1:zipWith(flip(+))(tail l)l

(flip(+))(आमतौर पर) के समान है (+), और हमें फाइबोनैचि संख्याओं की एक अच्छी तरह से ज्ञात (लेकिन सबसे छोटी नहीं) परिभाषा मिलती है। यह पुनरावर्तन योजना सीधे A001906 की गणना कर सकती है, लेकिन इसके लिए ऑपरेशन की आवश्यकता अधिक जटिल है m। एक और उदाहरण: शुरुआती मूल्यों 1और 2ऑपरेशन का उपयोग करके (*)श्रृंखला A000301 देता है । यह हमारे कोड द्वारा गणना की जाती है जब श्रृंखला संख्या को प्रतिस्थापित किया जाता है ?103206

अंत में, फ़ंक्शन fसूची में अनुक्रमित करता है l, लेकिन इनपुट के कुछ परिवर्तन के बाद ही। A001906 के लिए, मध्य भाग को कम कर देता है (*)2, ताकि हम केवल पदों पर भी फिबोनाची संख्या प्राप्त कर सकें। दाहिना हिस्सा बन जाता है flip const 1, जो पहचान का कार्य है और आगे हस्तक्षेप नहीं करता है।

समाधान के लिए A131078, के शुरुआती मूल्य lहैं 1और 0, और ऑपरेशन है flip const, जो होने देता lहै 1,0,1,0,...। का मध्य भाग fबन जाता है (flip div 4), जिसके परिणामस्वरूप 1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,...। यह एक अच्छा जवाब की तरह लग रहा था, लेकिन फिर मैंने देखा कि A131078 शुरू होता है n=1, इसलिए मैंने इसके दाहिने हिस्से को जोड़ा f, जो यहां एक flip(-)1को घटाना है।

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


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

यदि आप बस कोशिश कर रहे हैं, तो अतिरिक्त समस्या है कि समाधान भी दिए जाने पर "नकारात्मक सूचकांक" त्रुटि देता है 0। यह ठीक है क्योंकि यह केवल शुरू होता है 1! शुरुआत में 1कुछ "विभाजन बाय ज़ीरो" त्रुटियों को भी हटा देना चाहिए। मैं हमेशा से चल रहे उदाहरणों से हैरान हूं। हो सकता है कि इंडेक्स ट्रांसफॉर्मेशन इन मामलों में बहुत बड़ा मान पैदा करे ...
क्रिश्चियन सेवर्स


0

पाइथन 3.6, 114 बाइट्स, फटा

from random import*
g=lambda n:eval(''.join(Random("A005843").choices('n8-9+17n#8*+26%n1 32-3+4-545*-#6*7',k=34)))

A005843

g(n) n> = 0 के लिए अनुक्रम का n-वें मान लौटाता है।

random.choices(s,k)पायथन 3.6 में नया है, यह प्रतिस्थापन kसे चयनित आइटम देता है s


एन्क्रिप्शन / हैशिंग को बहुत पसंद करें।
pppery

@ppperry - अगर यह नियमों के खिलाफ है, तो मैं इसे हटा दूंगा।
RootTwo


0

चिप , 67 बाइट्स, फटा Yimin रोंग द्वारा

2D5B#{*Cm49!}E-7
(A000012d#,zkmsh
b-\6/e2)[1Zv^~^S
33a#kcf3g88taz1@

A000012 । थोड़ा चुटीला, हाँ।

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

आई / ओ के लिए बाइट्स का उपयोग करता है, इसलिए मैं अच्छा था और एक बैशी / पाइथोनी रैपर का निर्माण किया।


वैकल्पिक क्रम A060843 है । इनपुट्स के लिए इसे ऑनलाइन आज़माएं1..4

यिमिन रोंग ने ठीक कहा, ऐसा छोटा चिप प्रोग्राम केवल बहुत ही सरल चीजों की गणना कर सकता है। मूल अनुक्रम सभी एक है, और वैकल्पिक अनुक्रम व्यस्त बीवर संख्याएं हैं, जिनमें से केवल 4 ज्ञात हैं।

ये नंबर, 1, 6, 21, 107इनपुट के लिए बस हार्ड-कोडेड हैं 1..4

इस चुनौती के लिए चिप का उपयोग करने के बारे में एक दिलचस्प बात यह है कि अंक 0-9 संख्या नहीं हैं, लेकिन तार्किक तत्व हैं। विशेष रूप से, 0- 7आठ बिट ढेर के सिर को संबोधित कर रहे हैं, और 8और 9पढ़ने और लिखने टॉगल हैं। इसने इसे थोड़ा और दिलचस्प बना दिया और बहुत अधिक बाधित कर दिया।

एक संभावित सस्ता रास्ता केवल A- Dदिखाई देता है, जिसका अर्थ है कि अनुक्रम अनुक्रमित करने के लिए हमारे पास केवल 4 बिट्स हैं। इसका मतलब यह था कि ज्यादातर 16 अलग-अलग मूल्य हो सकते हैं। वास्तव में, केवल A- Cवास्तव में वैकल्पिक अनुक्रम के लिए उपयोग किया जाता है, जो अधिकतम 8 विभिन्न मूल्यों को दे रहा है।

जो कोई भी दिलचस्पी ले सकता है, उसके लिए यहां एक ही कोड है, बिना ऑप्स और अप्रयुक्त तत्वों के छीन लिया गया है:

   B  *C 49!
 A000012d ,z  s
b-\6/e   1Zv-~^S
`3a`-cf3g`8taz1

बस स्पष्ट को बाहर करने के लिए, आप एक खाली क्रम में चुपके करने की कोशिश नहीं कर रहे हैं, जैसे A290000 ? तकनीकी रूप से, क्योंकि आपका कोड शून्य के इनपुट के लिए कुछ भी नहीं देता है, यह अनुक्रम मेल खाएगा!

हा, अन्य अनुक्रम में कम से कम एक मूल्य है :) इसके अलावा, मुझे कहना चाहिए, मैंने इसे 1-अनुक्रमित करने के लिए डिज़ाइन किया है, क्योंकि यह OEIS अनुक्रमित है।
फार्लेक्स

(कोई बात नहीं, मुझे काउंटरटेम्पल मिला। मेरा कोड अभी भी 1-अनुक्रमित है।)
फार्लेक्स

इसलिए मैंने इसमें कुछ और खोज की, और कुछ भी नहीं करना अजगर की गलती है। यह शून्य के लिए कोई आउटपुट नहीं दे रहा था, इसलिए मेरा कोड कभी नहीं चला। मैंने तय किया है कि अब TIO लिंक में। (1-बाइट के एक बिट-लंबाई को एक मंजिल दिया)।
फार्लेक्स

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