คุณสามารถเอาชนะฉันได้ไหม (ส่วนตำรวจ)


84

ส่วนตำรวจ

ส่วนโจรสามารถพบได้ที่นี่

ขอบคุณFryAmTheEggman , Peter Taylor , Nathan Merrill , xnor , Dennis , LaikoniและMegoสำหรับการมีส่วนร่วมของพวกเขา


ท้าทาย

งานของคุณคือการเขียนโปรแกรมที่แตกต่างกัน 2 โปรแกรม ( โปรแกรม / ฟังก์ชั่น / ฯลฯ ) ในภาษาเดียวกันและรุ่นเดียวกัน (เช่น Python 3.5 ≠ Python 3.4 ดังนั้นจึงไม่ได้รับอนุญาต) และเมื่อได้รับn (โดยใช้อาร์กิวเมนต์ STDIN / function / etc. ) คำนวณa (n)โดยที่aคือลำดับ OEIS ที่คุณเลือก หนึ่งในโปรแกรมเหล่านั้นสั้นกว่าอีกโปรแกรมหนึ่ง คุณจะต้องส่งโปรแกรมที่ยาวขึ้นของทั้งสอง อีกคนหนึ่งจะต้องได้รับการบันทึกในกรณีที่ไม่ได้รับการแตกหลังจาก 7 วัน การส่งของคุณจะแตกเมื่อโปรแกรมของคุณได้รับการ outgolfed (ไม่ว่าจะเป็น 1 byte หรือมากกว่า)

ตัวอย่างเช่นหากงานที่คุณเลือกคือดำเนินการ2 × nอาจเป็นการส่งที่ถูกต้อง (ใน Python 2):

Python 2, 16 ไบต์, คะแนน = 15/16 = 0.9375

print(2*input())

คำนวณA005843 , (offset = 0)

หากการส่งของคุณแตกแล้วคุณต้องระบุว่าในส่วนหัวของคุณเช่น:

Python 2, 16 ไบต์, คะแนน = 15/16 = 0.9375, [รอยแตก] + ลิงก์

print(2*input())

คำนวณA005843 , (offset = 0)


สาขา

พบได้ในทุกหน้า OEIS ตัวอย่างเช่นสำหรับA0058430,2การชดเชย 0เราจะต้องใช้คนแรกซึ่งเป็น ซึ่งหมายความว่าฟังก์ชั่นถูกกำหนดไว้สำหรับหมายเลขทั้งหมด≥ 0

ในคำอื่น ๆ ฟังก์ชั่น OEIS (n) เริ่มต้นด้วยn = 0 โปรแกรมของคุณต้องใช้งานได้กับทุกกรณีที่ได้รับจาก OEIS

ข้อมูลเพิ่มเติมสามารถพบได้ที่นี่


เกณฑ์การให้คะแนน

คะแนนที่คุณได้รับจากการส่งมีค่าเท่ากับสูตรต่อไปนี้:

คะแนน = ความยาว (เป็นไบต์) ของรหัสลับ ÷ ความยาว (เป็นไบต์) ของรหัสสาธารณะ

ตัวอย่างข้างต้นมีคะแนน 15 ÷ 16 = 0.9375

การส่งที่มีคะแนนต่ำสุดชนะ เฉพาะการส่งที่โพสต์โซลูชันของพวกเขาเท่านั้นจึงจะมีสิทธิ์ได้รับรางวัล


กฎระเบียบ

  • งานที่คุณต้องทำคือลำดับของ OEIS ที่คุณเลือก
  • ได้รับnผลผลิตOEIS (n) ไม่อนุญาตให้เบี่ยงเบนดังนั้นคุณต้องสร้างลำดับเดียวกันแน่นอน (เมื่อได้รับ n คุณจะต้องส่งออก OEIS (n))
  • การส่งที่ไม่ได้แตกภายในระยะเวลา 7 วันถือว่าปลอดภัยหลังจากโพสต์โซลูชันแล้ว (การส่งที่เก่ากว่า 7 วันที่ไม่ได้โพสต์โซลูชันของพวกเขายังคงเสี่ยงต่อการถูกแคร็ก)
  • ในการส่งของคุณคุณต้องโพสต์สิ่งต่อไปนี้: ชื่อภาษา , จำนวนไบต์ , รหัสเต็ม , ดังนั้นจึงไม่มีการเชื่อมโยงของ Pastebin เป็นต้น (เพื่อป้องกันคำตอบเช่น Unary), ลำดับ OEIS , คะแนนที่มีความยาวของทั้งสองโปรแกรมและเพิ่มเติม ถูกนำมาใช้.
  • หมายเหตุ: ลำดับเดียวกันไม่สามารถโพสต์สองครั้งในภาษาเดียวกัน (ตัวอย่างเช่นถ้าลำดับ A005843 ได้ทำใน Pyth คุณจะไม่สามารถใช้ Pyth อีกครั้งสำหรับลำดับเดียวกันนั้น)
  • อินพุตและเอาต์พุตมีทั้งเป็นทศนิยม (ฐาน 10)

ลีดเดอร์บอร์ด

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>table th,table td{padding: 5px;}th{text-align: left;}.score{text-align: right;}table a{display: block;}.main{float: left;margin-right: 30px;}.main h3,.main div{margin: 5px;}.message{font-style: italic;}#api_error{color: red;font-weight: bold;margin: 5px;}</style> <script>QUESTION_ID=88979;var safe_list=[];var uncracked_list=[];var n=0;var bycreation=function(x,y){return (x[0][0]<y[0][0])-(x[0][0]>y[0][0]);};var byscore=function(x,y){return (x[0][1]>y[0][1])-(x[0][1]<y[0][1]);};function u(l,o){jQuery(l[1]).empty();l[0].sort(o);for(var i=0;i<l[0].length;i++) l[0][i][1].appendTo(l[1]);if(l[0].length==0) jQuery('<tr><td colspan="3" class="message">none yet.</td></tr>').appendTo(l[1]);}function m(s){if('error_message' in s) jQuery('#api_error').text('API Error: '+s.error_message);}function g(p){jQuery.getJSON('//api.stackexchange.com/2.2/questions/' + QUESTION_ID + '/answers?page=' + p + '&pagesize=100&order=desc&sort=creation&site=codegolf&filter=!.Fjs-H6J36w0DtV5A_ZMzR7bRqt1e', function(s){m(s);s.items.map(function(a){var he = jQuery('<div/>').html(a.body).children().first();he.find('strike').text('');var h = he.text();if (!/cracked/i.test(h) && (typeof a.comments == 'undefined' || a.comments.filter(function(b){var c = jQuery('<div/>').html(b.body);return /^cracked/i.test(c.text()) || c.find('a').filter(function(){return /cracked/i.test(jQuery(this).text())}).length > 0}).length == 0)){var m = /^\s*((?:[^,;(\s]|\s+[^-,;(\s])+).*(0.\d+)/.exec(h);var e = [[n++, m ? m[2]-0 : null], jQuery('<tr/>').append( jQuery('<td/>').append( jQuery('<a/>').text(m ? m[1] : h).attr('href', a.link)), jQuery('<td class="score"/>').text(m ? m[2] : '?'), jQuery('<td/>').append( jQuery('<a/>').text(a.owner.display_name).attr('href', a.owner.link)) )];if(/safe/i.test(h)) safe_list.push(e);else uncracked_list.push(e);}});if (s.items.length == 100) g(p + 1);else{var s=[[uncracked_list, '#uncracked'], [safe_list, '#safe']];for(var i=0;i<2;i++) u(s[i],byscore);jQuery('#uncracked_by_score').bind('click',function(){u(s[0],byscore);return false});jQuery('#uncracked_by_creation').bind('click',function(){u(s[0],bycreation);return false});}}).error(function(e){m(e.responseJSON);});}g(1);</script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea"><div id="api_error"></div><div class="main"><h3>Uncracked submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="uncracked"></tbody></table><div>Sort by: <a href="#" id="uncracked_by_score">score</a> <a href="#" id="uncracked_by_creation">creation</a></div></div><div class="main"><h3>Safe submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="safe"></tbody></table></div>

บันทึก

ความท้าทายนี้เสร็จสิ้นแล้ว ผู้ชนะสุดท้ายคือfeersumกับเขาคำตอบของเมล็ดพันธุ์ ขอแสดงความยินดี! :)

คุณยังคงสามารถส่งตำรวจใหม่ได้ แต่ระวังว่าพวกเขาจะไม่แข่งขันอีกต่อไป


2
@ อันที่ดูเหมือนโชคร้าย สมมติว่าฉันเขียนกอล์ฟด้วยลูกเล่นที่ชาญฉลาดหลายอย่างที่ปรับปรุงในสูตรที่ชัดเจน ถ้าฉันโพสต์สูตรที่ชัดเจนใคร ๆ ก็สามารถหาทางปรับปรุงและเอาชนะได้ หรือฉันต้องให้ทิปและมอบการปรับปรุงทั้งหมดให้ แต่เพียงอย่างเดียว คุณจะพิจารณาเปลี่ยนแปลงสิ่งนี้หรือไม่ถ้ามันไม่สายเกินไป ขออภัยที่ไม่คิดเกี่ยวกับเรื่องนี้ใน sandbox นี้ฉันสังเกตเห็นเมื่อพยายามท้าทายอย่างจริงจัง
xnor

4
@ xnor อืมนั่นจะทำให้เกิดปัญหาใหญ่กับกลไกการให้คะแนน จากนั้นคุณสามารถส่งเอกสารขนาดใหญ่โดยพลการและคำย่อสั้น ๆ ที่แทบจะเป็นไปไม่ได้และเอาชนะการท้าทาย
Adnan

3
@Adnan คุณสามารถแก้ไขได้โดยกำหนดคะแนน = len (รหัสลับ) / นาที {len (รหัสสาธารณะ), len (รหัสสั้นที่สุดที่โพสต์โดยโจร)}
Anders Kaseorg

3
@Adnan บริบทเป็นข้อเสนอแนะของ xnor ในการนับคะแนนหากโจรเอาชนะคะแนนสาธารณะของคุณ แต่ไม่ตรงกับคะแนนลับของคุณ ฉันกำลังเสนอวิธีที่จะทำให้การทำงานในขณะที่หลีกเลี่ยงปัญหาที่คุณกังวล
Anders Kaseorg

3
ใช่ในที่สุด Cooooops และ Rooooobbbbbers อีกคนก็ท้าทาย
insertusernamehere

คำตอบ:


36

เมล็ดพันธุ์ , 5861 ไบต์, คะแนน = 5012/5861 = 0.85

ลำดับคือ primes ( A000040 ) โดยมี offset 1 a (1) = 2, a (2) = 3, a (3) = 5 เป็นต้น

106 4339425277766562922902283581834741289660008085947971671079664775075736459902652798498038280771739790213868067702391567527146683746696872737118568202495046682058807677834082334206717794057290386357040004038910321326390033894692316122893125849512049817771469697446796247656883761642659391998672259889315862253584980121050081936190889196979721443972131545258528161479083569474217100401074866410321578452749003295370495810488337344650619973376676577461877392643228932028285261311284691649403036725905675576380944186859525020321196255472295415627414823269713084816196540461818684672201926996228242729726187404845487167114556965625764494860789841409004737497250600337038738035289643512265772877903971230007222865264200102217827010958702813633039465646713707971175729900391272165457566364779628858903697222589748797809421482136725017988969980267265196209027326008642464190920825439635011414535065156799655809935871795742526416544853103823906918352472744460644939241345215614650110978624804796257165525598653433482592675123776747497586586903140407616610040250976121531777891358439091358523224019193934111409521776865798864774150127996987606796522094617839125169013781373842026970010007574244564780540958252950607459585834584855526028427463655493110963000525209314274839412714497954647707284352161251044088451086878301225167181712809612927720502228546704347274977503482518386819117870800284276687560241308964641752876311905619184965236937789822712948719170589044519552259399272657757694404103028213338440810122219269214268424256451648966039627998513353115348057963135398345514276156595104642595820063441019481255889600472121104059631555738973905087895006671206400595057069658845297458058584470727379036742268107372233190371861824194831387484478317333784774872796689435056263039565495723444232483369405079512770383639748492508848098080619713255928884946598796741958520788406091704951276729428229224292748702301286318784744573918534142896761450194446126776354892827260482520089107240497527796383449573487121759294618654056309957794765646022274249211113876873102681817500947681708211056388348991201016699342850495527766741633390367735662514559206616070479934780700857859919517187362382258597709910134111383911258731633002354208155277838257255571878219168563173495861133946240923601273185050088148273459064040178741322137494758164795598458780786653602794809987537740537018415433767449108362051063814315399931951925462073202072886716208053889630274798247936580024665863765351912184189125660586187615847325588786048095120241198943086897428919324650596915625795076460123743259068671341944912206659194476673792489442514470540309819938731582497982088632076086088279435186513066668502875362808653657423813387124496122632219269226944975782747969308509448942429277233562654639293567532567668357917753810024961683829653277391094269518376510962710057956994339018307344554672056556222387849272880157861877494719706801624724491116189525394408237355854147113614645956561900837121715298276123085019204014577395795131906357190097536924932784935203378709529040555114884933996346694363879974847691625806412083107877442577777402405491226347699452398189866905599648314105255526411599513768016126067224570735746339691839657336828937030584950250402550603260483421505256395736457980708347396132620971927806636308105501893575073944959824958733880580825249931469481777083600987966500968473202481877213198175820182125298036242272662171321630056435823478710070315022531849275633515412140708923196338877549535352180465031450246889723670908173572778497329815806296369714467774385173078365517895215622645081749679859298824530173433952201710212962315524645807786760255396609101229899503687886977229729747349967302227815724222900649259120496955396616388023947812556426182596252076072286860171961582235043470190275528327438941205680729222092142315348205283459886659277456757338926863444370956987436702675569004062857510888080701482282900718067707825890168959050535970636214821273965900140346587802750221148933877600652180282267212515086387728695565345543441575183083490091817551421389124038251086513387106526847199935776240422217886407416027185332010280169564289345500368555274327733580514983967396271907637608170801013991375555069570288329399237332712790289521766624379537848996471168926519414464863388365890585061582441222989105844636887033599262856636618609644981203616618819656730174147506366895579518927217154437260067784133452192099436160162797896733220282837763342940047719962882720310397266700665603774047807673735452896542215047419894928360985667680051383584281780118001522220147385455276205847620842066894760474814386271419398361771509559702341442734727141312211989794380570433135781896005067541537095546614638001539678780066976441749790924521292297473522803115912791790379839635473194794843511234906415092857115568242448079933264380632375450234146479596225552359821776361923588178896354011117990551249184457345201223244319766597339520899930287542362386381372955844126876031262062731835081542890548095759704856479235361996156162229417953890962902505112862674541020677153054937034038823204321411753183982406667628845943390275194956321260584953509501973880059966268311741789559039618821364775407403947492157311255310143283125490988585303127442698159113924719563571459841025286208880511134222538431747221840824203312684036627017414295981003169360893015436564680773233890198618904647085929678054127680367983802905553144716598061593632352021737488422700265144189474970515439967472618438343180405852959047054139020095303915498443045344690691354304662161461750826840689185141612937350984288238847592910919431788170821390987459951181698659544772214696392241600642992000900364649438402093845534643663733216626212187314397293309505677932731383013397665193960914949915855970134736764497124186701371371881061763702617034928084811708964018610410971938419410791443362686750151572343348438861493025667676713

โปรแกรม Befunge-98 ได้รับการทดสอบกับล่ามนี้

วิธีการแก้:

62 92671758747582594731336103958852355343308794409787718910287760272065096600068486400261521203099179296478278113800406388237579729434074471528101978922110199511009255327569364221068648720732186414156697930516237153253745234146558781777104311285708042469572129997820696177040412749585193035961972308024909384538547357820271391461203855177879703963391294547499579588457829374981409596253284387318191154655397249791533591896711203680125312645807793061567274893660125978667479654664977040722935418267606762108334976561590548772755653088127344268269983549959628254712562135604114391709222466418283973346968039685907258341712475120187026707300070769277380483828579629391533415119380882514570806683534933872011332303802477012040660361613689139008855327957705058672774790021218679288003003953301651226513713984857174365383390364296326192225244927665294515693697694918935732394438095829822147927645949273829493190176397786165741955566462476231578299385726525505407052332068778469428870102672560545990553686935179657522071350801304923521681690806124866463401094200444841941834667455137491597902735287855498886460945851544063102556545691787612423033525861765804657417395955322217721677429700032333887700477665924915189639029356029794151144702621112140447347270986003871777552705154393697526621456025974679633450745341583481291685834000335168972075093212539251102818038917942913311300883294570091156661153874804268309393591292001433191276766990017144340677002050765359295580546228905861008474333888247511333039470305173620221481374758754343560048199433044290376988914313248904786418615239832295700238599693805552407166251501198275363727855984193340187485162706203747898935844148656997727555488455764358003951396850496841760348138874901474547533715922587211143833052692993182786162665394965914056238514702648647904702501871758140636318131208564891924287008550289224318358936576352473100482724524675417108540029486047223784009872784235439805791496176981701859374772960623187174667015174831665360382067784289660747175586412802848517818731070091826086320292632019033525579172665790335268736167170506003176022610987557889205903933680970434653929602313812168432779881423599218075810156457004870273456214668951969634696002866863369645150677406566613367576078149751561615160777945725724620047443832859087000460506626402089973036918592151204779260519899343451226942874643654023265001514280212345984966126290887141500898797940093805650642580450926977375576911590855135774911449619005627413806680159169643085790457809525639117624947749945044091079624534522626841372604654172723500062361904864176709974716350878399949908529715899937417421315012456868864220900338162700464737416505300734198857624165994112815507157337074226022552948626042899845891195024145834980781844015548398775284084741665926642729256313545870065439195137107807599897817556866239630270351410298105991743248934632486671734759038305157913444368204353943206369388913837519310828223093441519335111533635957953613758894822654736600526811789875376813119426924959017038654104216784121093688306563643326587639486472221258233221666454164763738631579246841130247019172136121041002571694545781948282785399495873501148416357057693713305042834246973535325571882393889489457235864027134943913383832461393499203435931881991959787045205816313165984531168137210464591653390767999403651750434079431253272021002273680565508340556736474927770564408343360602057949991306130979603289667991356237787412616305022971197507815004141825394838946364485315703051195195566893733123391158803413838803831010122718476800229685100410524315094662633390222854924884579083098055980542607258318868514903610787510921796157291630993618714015755412239872758443166948699744841899868754369627081727143351807615097715679652005998467491609044596871312950634152039807480021814406950780706131231897491212637759991818212542181136384052857191779658528790835620632765143337026858373660057972387266312097135260115742458792764792668883627539340807572869610941154184473111399152964165437112713815173281951728792354570851956468302291939952274005357250989986640723863408051924618400882866539701190471828299028566020683682444415198672952980294639217217840535225987439355834087974716313911977302809235338769491339553247328065401203243450045946392960085318343121705830317674151229536850726617093615850507955559652374337057819549481320081981520577039493601331233500403284295119207704095876958023271178964331413629547646937335760969491450824461526563643617594783473684358594189269252499897162333533284912320654686655888508024970105099967896167541978181602786701854274646885561632089896312016789257459673121974866871919820865433343707787147414982407950775979279255414469970743690769124215210050618943726165676550098723299244096267839544684847323547847832349290874282817429866612456451105673214159820212156069771415582214200701894487126822756864305461967035982308878073752362075553218935807632264803200753661147341613284071218919438723527468202903770806766095252957940538229987302177328543423522712562396242285027178395886649344

8
การดำเนินการนี้ใช้เวลาหลายศตวรรษในการถอดรหัส o_____O
TuxCrafting

4
ภาษาที่เหมาะสมสำหรับการท้าทาย
DLosc

26

เยลลี่ , 5 ไบต์ , คะแนน 0.8 (4/5) [ แตก! ]

R²Sƽ

คำนวณA127721

ลองออนไลน์!


นี่คือทางออก:

RÆḊḞ
  • รับอินพุตโดยปริยาย n
  • R: รายการจาก [1, 2, ..., n]
  • ÆḊ: ในกรณีของเราสิ่งนี้จะคืนค่าสแควร์รูทของผลรวมของสี่เหลี่ยมจัตุรัส (ซึ่งอาจมีประโยชน์ในการเล่นกอล์ฟในอนาคต)!
  • : ชั้นผล

เอกสารสำหรับÆḊอ่าน:

ÆḊ: ตัวกำหนดขยายไปยังเมทริกซ์ที่ไม่ใช่สแควร์

ที่สำคัญคือการขยายไปยังไม่ใช่สแควร์เมทริกซ์ "ดีเทอร์มิแนนต์" ของเมทริกซ์ที่ไม่ใช่สแควร์มักจะไม่ได้กำหนด แต่นิยามหนึ่งที่สมเหตุสมผลคือsqrt(det(A A^T))(ซึ่งสำหรับเมทริกซ์สแควร์จะลดลง|det(A)|) ในกรณีของเราA A^Tมันคือเมทริกซ์ขนาด 1 x 1 ที่มีผลบวกของกำลังสอง สแควร์รูทของดีเทอร์มีแนนต์ของนั้นให้สิ่งที่เราต้องการเพื่อกำจัดไบท์สุดท้าย!


4
ยินดีต้อนรับสู่การเขียนโปรแกรมปริศนาและรหัสกอล์ฟ!
Adnan

2
เพิ่งออกมาจากความอยากรู้จริงเป็นไปได้ใน 4 ไบต์? ฉันติดอยู่กับเรื่องนี้หลายชั่วโมง: หน้า
Adnan

1
@Adnan ใช่มันเป็นไปได้ ดีใจที่ได้ยินว่าคุณพบว่ามันท้าทาย!
George V. Williams


@ jimmy23013 yup ทำได้ดีมาก!
George V. Williams

12

เรติน่า , 28 ไบต์, คะแนน = 0.9286 ... (26/28), ถูกถอดรหัสโดย feersum

.+
$*
^$|^((^|\3)(^.|\1))*.$

คำนวณA192687 , (offset = 0)

ลองออนไลน์! (บรรทัดแรกเปิดใช้งานชุดทดสอบที่แยกบรรทัดด้วยฟีด)

นี่คือความแตกต่างระหว่างลำดับของชายกับหญิงของ Hofstadter ( ความท้าทาย PPCG ที่เกี่ยวข้อง )

นี่คือรหัสเดิมของฉัน:

.+
$*
^((^.|\3)(\1)|){2,}$

คำตอบนี้เป็นการเสี่ยงโชคเล็กน้อยเนื่องจากโซลูชันที่แท้จริงนั้นใช้ regex ที่ฉันประกาศว่าเป็น regex การทดสอบ Fibonacci ที่สั้นที่สุดที่รู้จักกันในการแชทเมื่อไม่กี่เดือนที่ผ่านมา โชคดีที่ไม่มีใครจำได้ :)



11

Hexagony , 91 ไบต์, คะแนน = 0.725274725 (66/91) [แคร็ก]

คำนวณA000045 (ลำดับ Fibonacci, offset 0)

ฉันจะไม่แปลกใจเลยถ้ามีคนจัดการที่จะเอาชนะมันและเวอร์ชั่นที่ตีกอล์ฟของฉันได้มากกว่านี้

แก้ไข: Holy cow, @MartinEnder ทำให้ฉันมีวิธีแก้ปัญหา 33 ไบต์

เล่นกอล์ฟ (91):

?\]~<~.{>'"/(@{\''1<{!1>{{1}/}{'\1</={}/_\'0"/>+(}\/}(+'+'%=<>=%"=+("\/+"(+}+<>{{}=~\.....|

จัดรูปแบบ:

      ? \ ] ~ < ~
     . { > ' " / (
    @ { \ ' ' 1 < {
   ! 1 > { { 1 } / }
  { ' \ 1 < / = { } /
 _ \ ' 0 " / > + ( } \
  / } ( + ' + ' % = <
   > = % " = + ( " \
    / + " ( + } + <
     > { { } = ~ \
      . . . . . |

ลองออนไลน์!

ฉันจะไม่โพสต์คำอธิบายสำหรับเรื่องนี้มันน่ากลัวเกินไป ...

เล่นกอล์ฟ (66):

?{1}]0@._.>\>+{./'++.!.|.*'}..\}{\=++.../'"<_}\"+<./{(/\=*"=/>{=+"

จัดรูปแบบ:

      ? { 1 } ] 0
     @ . _ . > \ >
    + { . / ' + + .
   ! . | . * ' } . .
  \ } { \ = + + . . .
 / ' " < _ } \ " + < .
  / { ( / \ = * " = /
   > { = + " . . . .
    . . . . . . . .
     . . . . . . .
      . . . . . .

สี:

ลำดับฟีโบนักชี

ลองออนไลน์!

คำอธิบาย:

เลย์เอาต์ของหน่วยความจำที่ฉันใช้มีลักษณะดังนี้:

   |
   a
   |
  / \
b+a  b
/     \
      |
    input

การกำหนดค่าเริ่มต้น (เป็นสีดำ) ตั้งค่าเป็น 0 และ b = 1 จากนั้นห่วงหลัก:

  • ไปจากaเซลล์อินพุต -'"
  • ลดค่าอินพุต - (
  • เพิ่ม b และ a - {{=+
  • ย้าย "ออกไป" - "+{=*
  • ชุด a ไป b - '+
  • ย้าย "ทางออก" - '+}=*
  • ย้าย b + a กลับไปที่ตำแหน่งเดิม - "=+
  • ตั้งค่า b เป็น b + a - "+
  • ย้ายกลับไปที่ตำแหน่งเดิม - }+

เมื่อเซลล์อินพุตถึง 0 MP จะย้ายไปที่ a, พิมพ์และออก

สิ่งที่ฉันสามารถทำได้เพื่อประหยัดไบต์มากขึ้นคือการใช้ & ซึ่งเพิ่งตั้งเซลล์ปัจจุบันเป็นเพื่อนบ้านด้านซ้ายหรือขวา ฉันอาจมีการควบคุมการไหลที่ดีขึ้นเล็กน้อย แต่ก็โอเคเพราะมันตั้งอยู่


แตกระแหง ขอบคุณที่ให้ฉันเขียนโปรแกรม Fibonacci ไม่แน่ใจว่าทำไมฉันไม่เคยทำอย่างนั้นมาก่อน :)
Martin Ender

ที่จริงแล้วสิ่งที่ฉันใช้&คือการย้ายอินพุตรอบ ๆ ขอบ a / b / a + b เพื่อให้พวกเขาสลับบทบาทของพวกเขาในการทำซ้ำครั้งถัดไป ด้วยวิธีของฉันฉันไม่จำเป็นต้องย้าย a, b และ a + b ไปเลย
Martin Ender

@MartinEnder ขออภัยฉันเขียนส่วนนั้นก่อนที่จะดูว่าโปรแกรมของคุณทำอะไร ทางออกของคุณฉลาดกว่ามาก
บลู

10

M , 10 ไบต์ , คะแนน 0.6 (6/10) [ แตก ]

R‘ạḤc’*@RP

ตาดโกงตั้งแต่ M และ Jelly ค่อนข้างคล้ายกัน แต่ได้รับอนุญาตตามกฎ รุ่นนี้ขึ้นอยู่กับการแตกของ @ LeakyNunต่อคำตอบ Jelly ของฉัน

นี้จะคำนวณลำดับA068943 ลองออนไลน์!

แนวทางแก้ไขปัญหา

รหัสต่อไปนี้ใช้งานได้ใน M / Jelly

R¹¡PÐL

จริง ๆ แล้วฉันมีวิธีแก้ปัญหา 4 ไบต์ที่ฉันเพิ่มปุยบางอย่างเพื่อให้ดูเหมือนยากต่อการถอดรหัสโดยใช้กำลังดุร้าย

R¡FP

ลองออนไลน์!

นี่คือสิ่งที่ฉันจะอธิบาย

R¡FP  Main link. Argument: n

 ¡    Execute the left to the left n times, updating the return value.
R       Range; map each integer k to [1, ..., k].
      This does the following for the first values of n.
        1 → [1]
        2 → [1,2]   → [[1],[1,2]]
        3 → [1,2,3] → [[1],[1,2],[1,2,3]] → [[[1]],[[1],[1,2]],[[1],[1,2],[1,2,3]]]
  F   Flatten the resulting, nested array.
   P  Take the product of the reulting array of integers.

แตก! มันสนุก!
ไมล์

10

Stack Cats , 14 ไบต์, คะแนน = 13/14 = 0.929 [ แตก ]

นั่นคือ 10 ไบต์ของรหัสบวก 4 -nmสำหรับการขัดแย้ง

คำนวณA017053 ในกรณี OEIS ลงที่เริ่มต้นที่a(n) = 7n + 6n = 0

![_-_:-_-_

รหัสเต็ม (ใช้งานได้โดยไม่มี-mข้อโต้แย้ง) คือ![_-_:-_-_-_-:_-_]!

ทางออกที่ซ่อนอยู่คือ

!]|{_+:}_


7

Snowman , 50 ไบต์, คะแนน = 0.9 (45/50) [ แคร็กโดย Lynn ]

((}#NDe`nOnO|`2nMNdE0nR2aGaZ::nM;aF;aM:nS;aF,nM*))

นี่คือรูทีนย่อยที่ใช้ตัวเลขเป็นอาร์กิวเมนต์และส่งคืนหมายเลขอื่น

คำนวณA122649 (offset = 1)

ลองออนไลน์!


การเรียกที่เรียกว่า "รูทีนย่อย" เรียกว่าอะไร?
feersum



6

Brachylog , 27 ไบต์, คะแนน = 0.666 ... (18/27), แคร็ก!

+ybL:L:[1]co~c[A:B]hl-?,A*.

คำนวณA010551 (ชดเชย = 0)

คุณสามารถลองออนไลน์ได้ที่นี่

การอธิบาย

เนื่องจากคนส่วนใหญ่ไม่รู้ภาษานี้และเนื่องจากฉันโพสต์คำตอบนี้ส่วนใหญ่เพื่อให้คนดู (ดู: วิกิพีเดียของ Brachylog ) ฉันจะให้คำอธิบายสั้น ๆ ของรหัสข้างต้น:

+           Add 1 to the input N
ybL         L = [1, 2, ..., N+1]
:L:[1]c     Construct a list [1, 2, ..., N+1, 1, 2, ..., N+1, 1]
o           Sort the list from smallest to biggest
~c[A:B]     A concatenated to B results in that sorted list
hl-?,       The length of A is N + 1
A*.         The output is the result of the product of all elements of A



6

Java 7, 53 ไบต์, คะแนน = 0.9623 (51/53) แตก

int f(int n){return n<1?3:n<2?0:n<3?2:f(n-2)+f(n-3);}

คำนวณลำดับ Perrin, A001608

f(0)=3
f(1)=0
f(2)=2
f(n)=f(n-2)+f(n-3)

การพยายามตีกอล์ฟครั้งแรกรู้สึกฟรีที่จะชี้ให้เห็นข้อผิดพลาดใด ๆ

คำอธิบายหลังจากถอดรหัส:

ไมล์สั้นลงสามค่าแรก (0,1,2) -> (3,0,2) ถึง

n<2?3-3*n:n<3?2

ในขณะที่วิธีการแก้ปัญหาของตัวเองเป็นแบบ over-engineered เล็กน้อย

n<3?(n+4)%5*2%5

เมื่อรวมสองเทคนิคนี้เข้าด้วยกัน

n<3?3-3*n%5

สำหรับ 47- ไบต์

int k(int n){return n<3?3-3*n%5:f(n-2)+f(n-3);}

ซึ่งดูค่อนข้างเล็กสำหรับ Java :)



5

Cheddar, 7 ไบต์, คะแนน = 0.8571 (6/7), [แตก]

n->2**n

ค่อนข้างเรียบง่ายเพียงพลังของทั้งสอง OEIS A000079

ลองออนไลน์!


2
เอ่อผู้สร้างภาษามีความได้เปรียบที่นี่ ...
Dennis

10
ผู้สร้างภาษาโดยเฉพาะอย่างยิ่งภาษาที่มีเอกสารไม่เพียงพอ
Mego


2
@Mego เป็นรหัสการจัดทำเอกสารด้วยตนเองที่ไม่ถือว่าเป็นเอกสารใช่หรือไม่ ผู้ตรวจทานโค้ดโกหกฉัน! D: <
Downgoat

1
@Downgoat เมื่อคุณมีลิงค์ในเว็บไซต์ของคุณชื่อ "เอกสาร" และมันไม่สมบูรณ์อย่างมาก ... ใช่
Mego


4

งูหลาม 2 43 ไบต์คะแนน = 0.9302 (40/43) แตก

f=lambda n:n==1or-(-sum(map(f,range(n)))/3)

คำนวณA072493

มาดูกันว่ามีใครสามารถตีกอล์ฟทั้ง 3 ไบต์ได้ไหม


เดี๋ยวมันจะถูกจริงๆถ้าTrueจะใช้เพื่อแสดง1?
R. Kap


s=1;exec"a=-(-s/3);s+=a;"*input();print aสำหรับ 41.
orlp

@ R.Kap ใช่มันเป็น ค่าใด ๆ ที่เป็นจริง ( if xเป็นจริง) คือผลตอบแทนที่ถูกต้อง
Rɪᴋᴇʀ

4

Pyke 11 ไบต์คะแนน = 0.45 (5/11) [แตก]

hZRVoeX*oe+

คำนวณOEIS A180255

ลองที่นี่!


1
ฉันอยากไปที่นี้ แต่เอกสารสำหรับภาษาไม่ได้ตรัสรู้มาก (เช่นZไม่มีเอกสารภาษาอ้างว่าเป็นสแต็กตาม แต่หลังจากที่*มีเพียงศูนย์ในสแต็กแม้จะมีผลกระทบต่อส่วนที่เหลือของรหัส; ลำดับของพารามิเตอร์ไม่ได้ระบุไว้อย่างชัดเจน)
Score_Under

1
@Score_ ภายใต้ฉันจะปรับปรุงได้อย่างไร - มีความสุขอย่างสมบูรณ์แบบที่จะพูดคุยในห้องสนทนาเกี่ยวกับสิ่งที่ไม่ชัดเจน
บลู

แน่ใจ ฉันไม่ทราบวิธีเริ่มการแชท แต่ฉันได้แก้ไขความคิดเห็นด้านบนของฉันด้วยตัวอย่าง - ฉันคิดว่าฉันจะสามารถเข้าไปได้ก่อนที่คุณจะอ่าน)
Score_Under






3

Sesos , 14 ไบต์, คะแนน = 0.8571 (12/14) ( แตก )

0000000: 16f8be 760e1e 7c5f3b 07ddc7 ce3f                  ...v..|_;....?

คำนวณA000290

ลองออนไลน์!

คำแนะนำ

ไฟล์ไบนารีนี้ถูกสร้างโดยแอสเซมเบลอร์ต่อไปนี้:

set numin
set numout
get
jmp,sub 1,fwd 1,add 1,fwd 1,add 1,rwd 2,jnz
fwd 1
jmp
  sub 1,fwd 1
  jmp,sub 1,fwd 1,add 1,fwd 1,add 1,rwd 2,jnz
  fwd 1
  jmp,sub 1,rwd 1,add 1,fwd 1,jnz
  rwd 2
jnz
fwd 3
put


3

MATL 11 ไบต์คะแนน = 0.8181 (9/11) แตก

YftdA-1bn^*

คำนวณฟังก์ชันMöbiusหรือA087811 (ชดเชย 1)

ลองออนไลน์!

ทรัพยากรสำหรับโจร

ฉันคิดว่าอันนี้ควรจะง่าย แต่อย่างไรก็ตามนี่คือความช่วยเหลือ

คำอธิบายรหัส:

Yf     % Implicit input. Push array of prime factors, with repetitions
t      % Duplicate
d      % Compute consecutive differences
A      % 1 if all those differences are nonzero, 0 otherwise
-1     % Push -1
b      % Bubble up array of prime factors to the top of the stack
n      % Number of elements
^      % -1 raised to that
*      % Multiply. Implicitly display

ภาษาเอกสาร

MATL เนต



@feersum ทำได้ดีมาก! สำหรับการอ้างอิงเวอร์ชัน 9 ไบต์คือYftdA_wn^
Luis Mendo


3

MarioLANG , 87 ไบต์, คะแนน = 0.839 (73/87), แตก

;
)-)+(< >>
-)===" ""====
>>+([!)( >-(+(
"====#[(("== [
!-) - <!!![)<<)
#======###====:

คำนวณA000217ตัวเลขสามเหลี่ยม ออฟเซ็ต 0

ลองออนไลน์!

วิธีแก้ปัญหาสั้น ๆ :

เนื่องจากตัวถอดรหัสใช้เวลาเพียง 1 ไบต์ฉันจะแบ่งปันโซลูชันของฉันใน 73 ไบต์ซึ่งใช้อัลกอริทึมที่แตกต่างกันโดยสิ้นเชิง:

;   +)-<
-   (=="
+)-<(
(=="+
> [!>)[!(
"==#===#[
!    -  <))
#=========:

ลองออนไลน์!

โปรแกรมแรกจะวางตัวเลขทั้งหมดจาก n เป็น 1 ตามเทปจากนั้นเพิ่มตัวเลขทั้งหมดจนกว่าจะเจอเซลล์ 0 ค่า ทำได้โดยการคัดลอกแต่ละเซลล์ลงในเซลล์ที่อยู่ติดกันสองเซลล์ลดการคัดลอกที่ถูกต้องและทำซ้ำกระบวนการจนกว่าจะถึง 0 ในระหว่างกระบวนการนี้เทปมีลักษณะเช่นนี้ (สำหรับ n = 5):

0 0 5 0 0 0 0
0 5 0 5 0 0 0
0 5 0 4 0 0 0
0 5 4 0 4 0 0
0 5 4 0 3 0 0
0 5 4 3 0 3 0
0 5 4 3 0 2 0
0 5 4 3 2 0 2

... และต่อไป จากนั้นมันจะเลื่อนไปทางซ้ายรวมผลรวมของเซลล์จนกว่าจะถึง 0

โปรแกรมที่สองใช้งานได้กับสามเซลล์ของเทปเท่านั้น จนกว่าเซลล์แรกถึง 0 จะทำสิ่งต่อไปนี้:

  • ย้ายค่าของเซลล์แรกไปยังเซลล์ที่สอง
  • ลดเซลล์ที่สองเป็น 0 โดยเพิ่มมูลค่าของตนเองลงในเซลล์แรกและเซลล์ที่สาม
  • ลดเซลล์แรก

หลังจากเซลล์แรกถึง 0 เซลล์ที่สามจะมี n + (n-1) + (n-2) + ... + 2 + 1


เวอร์ชัน 87 ไบต์ของคุณใช้งานได้กับล่ามอื่นหรือไม่ หนึ่งใน Tio! ดูเหมือนว่าจะต้องมีการขึ้นบรรทัดใหม่ ...
Dennis

@Dennis: มันทำงานกับล่าม Ruby โดยไม่ต้องขึ้นบรรทัดใหม่ ไม่ว่าจะด้วยเหตุผลใดล่ามใน TIO จะไม่ส่งออกจาก a :หากอยู่ในบรรทัดล่างซึ่งเป็นสาเหตุที่ฉันรวมบรรทัดขึ้นบรรทัดใหม่ในลิงก์ มาร์ตินกับฉันพูดถึงเรื่องนี้ในคำตอบ MarioLANG อีกคำตอบหนึ่งของฉัน
แมวธุรกิจ

ตกลงแค่ตรวจสอบ ฉันได้เพิ่มเสื้อคลุมสำหรับ Tio! ที่ผนวกบรรทัดใหม่เข้ากับซอร์สโค้ด
เดนนิส



3

Haskell, 28 ไบต์, คะแนน = 0.3571 (10/28), แตก

f n|odd n=1|1>0=2*f(div n 2)

A006519อำนาจสูงสุดของ 2 แบ่งเริ่มต้นที่nn=1

1, 2, 1, 4, 1, 2, 1, 8, 1, 2, 1, 4, 1, 2, 1, 16, 1, ...

ในขณะที่คุณได้รับเครดิตสำหรับรหัสที่สั้นลงฉันคิดว่าปริศนาจริง ๆ จะลดลงเหลือ 10 ไบต์


ลองของฉัน
nimi

@nimi ยินดีด้วยคุณเข้าใจแล้ว
xnor


2

Hexagony , 7 ไบต์, คะแนน = 0.857 (6/7), แตก

ไม่ได้ออกแบบมาเพื่อการยอมแพ้ แต่เป็นสมองแครกเกอร์แน่นอน จริง ๆ แล้วมันไม่ยากเลยถ้าคุณคิดเกี่ยวกับมัน: p. รหัส:

\!?__@(

หรือรุ่นที่อ่านได้มากขึ้น:

 \ !
? _ _
 @ (

คำนวณA052246

ลองออนไลน์! .





2

05AB1E , 7 ไบต์, คะแนน = 0.571 (4/7), แคร็ก

0s·Ì3c;

คำนวณ: A006331

ลองออนไลน์

หลังจากตีกอล์ฟตามลำดับที่ไม่ซ้ำกัน 5 รุ่นก่อนค้นหารุ่นสาธารณะนี้ฉันหวังว่าฉันจะไม่ได้ปรับปรุงที่ชัดเจนออกไปดังนั้นอย่างน้อยมันจะเป็นสิ่งที่ท้าทายสำหรับพวกโจร


แตกระแหง
alephalpha

2

M , 9 ไบต์ , คะแนน 0.6667 (6/9) [ แตก ]

r©0+’Ac®Ḅ

ตาดโกงตั้งแต่ M และ Jelly ค่อนข้างคล้ายกัน แต่ได้รับอนุญาตตามกฎ การถอดรหัส @milesต่อคำตอบ Jelly ของฉันไม่ทำงานใน M มันขาดœċอะตอม

นี้จะคำนวณลำดับA119259 ลองออนไลน์!



ฉันเริ่มหวังว่าสิ่งนี้จะมีชีวิตรอด ... ทำได้ดีมาก
เดนนิส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.