Czy możesz mnie obezwładnić? (Sekcja gliniarzy)


84

Sekcja gliniarzy

Dział rabusiów można znaleźć tutaj .

Dzięki FryAmTheEggman , Peter Taylor , Nathan Merrill , Xnor , Dennis , Laikoni i Mego za ich wkład.


Wyzwanie

Twoim zadaniem jest napisanie 2 różnych programów ( pełne programy / funkcje / itp. ) W tym samym języku i tej samej wersji (np. Python 3.5 ≠ Python 3.4, więc nie jest to dozwolone), a gdy podano n (używając argumentów STDIN / function / etc. ), oblicz a (n) gdzie a jest sekwencją OEIS twojego wyboru. Jeden z tych programów jest krótszy od drugiego. Musisz tylko przesłać dłuższy program z tych dwóch. Drugi należy zapisać na wypadek, gdyby nie został złamany po 7 dniach. Twoje zgłoszenie jest łamane, gdy Twój program został rozłupany (o 1 bajt lub więcej).

Na przykład, jeśli wybranym zadaniem było wykonanie 2 × n , może to być prawidłowe przesłanie (w Pythonie 2):

Python 2, 16 bajtów, wynik = 15/16 = 0,9375

print(2*input())

Oblicza A005843 , (przesunięcie = 0).

Jeśli Twoje zgłoszenie zostało złamane, musisz to zaznaczyć w nagłówku w następujący sposób:

Python 2, 16 bajtów, wynik = 15/16 = 0,9375, [pęknięty] + link

print(2*input())

Oblicza A005843 , (przesunięcie = 0).


Offsetowy

Można to znaleźć na każdej stronie OEIS. Na przykład dla A005843 przesunięcie wynosi 0,2. Musimy użyć tylko pierwszego, którym jest 0. Oznacza to, że funkcja jest zdefiniowana dla wszystkich liczb ≥ 0.

Innymi słowy, funkcja OEIS (n) zaczyna się od n = 0 . Twój program musi działać we wszystkich przypadkach podanych przez OEIS.

Więcej informacji można znaleźć tutaj .


Punktacja

Wynik uzyskany za zgłoszenie jest równy następującej formule:

Wynik = długość (w bajtach) tajnego kodu ÷ długość (w bajtach) kodu publicznego

Powyższy przykład ma wynik 15 ÷ 16 = 0,9375.

Zgłoszenie o najniższym wyniku wygrywa. Tylko zgłoszenia, które opublikowały swoje rozwiązanie, będą mogły wygrać.


Zasady

  • Zadaniem, które musisz wykonać, jest wybór sekwencji OEIS.
  • Biorąc pod uwagę n , wyjściowy OEIS (n) . Odchylenie nie wolno, więc trzeba wytwarzać dokładnie takiej samej sekwencji (gdy podano N, trzeba wyjściu OEIS (n)).
  • Zgłoszenia, które nie zostaną złamane w ciągu 7 dni, są uważane za bezpieczne po opublikowaniu rozwiązania (zgłoszenia starsze niż 7 dni, dla których nie opublikowano rozwiązania, nadal są podatne na złamanie).
  • W swoim zgłoszeniu musisz opublikować następujące rzeczy: nazwę języka , liczbę bajtów , pełny kod , więc żadne linki do pastebinów itp. (Aby zapobiec odpowiedziom typu Unary), sekwencję OEIS , wynik z długościami obu programów i dodatkowo kodowanie, które Jest używane.
  • Uwaga: tej samej sekwencji nie można opublikować dwukrotnie w tym samym języku. (Na przykład, jeśli sekwencja A005843 została wykonana w Pyth, nie można ponownie użyć Pyth dla tej samej sekwencji).
  • Wejścia i wyjścia są w systemie dziesiętnym (podstawa 10)

Tabela liderów

<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>

Uwaga

To wyzwanie jest zakończone. Ostatecznym zwycięzcą jest feersum z jego odpowiedzią na Seed . Gratulacje! :)

Nadal możesz przesyłać nowych gliniarzy, ale pamiętaj, że już nie konkurują.


2
@Andan To wydaje się niefortunne. Powiedzmy, że piszę golfa z wieloma sprytnymi sztuczkami, które poprawiają oczywistą formułę. Jeśli opublikuję oczywistą formułę, każdy może znaleźć jedną poprawę i wygrać. Albo muszę przechylić rękę i przekazać wszystkie ulepszenia oprócz jednej. Czy zastanowiłbyś się nad zmianą tego, jeśli nie jest za późno? Przepraszam, że nie pomyślałem o tym w tej piaskownicy, zauważyłem to tylko, gdy podejmowałem wyzwanie na poważnie.
xnor

4
@ xnor Hmm, to spowodowałoby duży problem z mechanizmem oceniania. Następnie możesz złożyć arbitrażowo duże i prawie niemożliwe krótkie zgłoszenie i wygrać wyzwanie.
Adnan,

3
@Adnan Możesz to rozwiązać, definiując score = len (tajny kod) / min {len (kod publiczny), len (najkrótszy kod opublikowany przez złodziei)}.
Anders Kaseorg,

3
@Adnan Kontekst jest sugestią xnora, aby wynik był brany pod uwagę, jeśli złodzieje pobili twój publiczny wynik, ale nie pasowali do twojego tajnego wyniku. Proponuję sposób, aby to zadziałało, unikając problemu, który cię niepokoi.
Anders Kaseorg,

3
Tak, wreszcie kolejne wyzwanie Cooooops i Rooooobbbbbers.
inserttusernamehere

Odpowiedzi:


36

Ziarno , 5861 bajtów, wynik = 5012/5861 = 0,85

Sekwencja jest liczbą pierwszą ( A000040 ) z przesunięciem 1. a (1) = 2, a (2) = 3, a (3) = 5 itd.

106 4339425277766562922902283581834741289660008085947971671079664775075736459902652798498038280771739790213868067702391567527146683746696872737118568202495046682058807677834082334206717794057290386357040004038910321326390033894692316122893125849512049817771469697446796247656883761642659391998672259889315862253584980121050081936190889196979721443972131545258528161479083569474217100401074866410321578452749003295370495810488337344650619973376676577461877392643228932028285261311284691649403036725905675576380944186859525020321196255472295415627414823269713084816196540461818684672201926996228242729726187404845487167114556965625764494860789841409004737497250600337038738035289643512265772877903971230007222865264200102217827010958702813633039465646713707971175729900391272165457566364779628858903697222589748797809421482136725017988969980267265196209027326008642464190920825439635011414535065156799655809935871795742526416544853103823906918352472744460644939241345215614650110978624804796257165525598653433482592675123776747497586586903140407616610040250976121531777891358439091358523224019193934111409521776865798864774150127996987606796522094617839125169013781373842026970010007574244564780540958252950607459585834584855526028427463655493110963000525209314274839412714497954647707284352161251044088451086878301225167181712809612927720502228546704347274977503482518386819117870800284276687560241308964641752876311905619184965236937789822712948719170589044519552259399272657757694404103028213338440810122219269214268424256451648966039627998513353115348057963135398345514276156595104642595820063441019481255889600472121104059631555738973905087895006671206400595057069658845297458058584470727379036742268107372233190371861824194831387484478317333784774872796689435056263039565495723444232483369405079512770383639748492508848098080619713255928884946598796741958520788406091704951276729428229224292748702301286318784744573918534142896761450194446126776354892827260482520089107240497527796383449573487121759294618654056309957794765646022274249211113876873102681817500947681708211056388348991201016699342850495527766741633390367735662514559206616070479934780700857859919517187362382258597709910134111383911258731633002354208155277838257255571878219168563173495861133946240923601273185050088148273459064040178741322137494758164795598458780786653602794809987537740537018415433767449108362051063814315399931951925462073202072886716208053889630274798247936580024665863765351912184189125660586187615847325588786048095120241198943086897428919324650596915625795076460123743259068671341944912206659194476673792489442514470540309819938731582497982088632076086088279435186513066668502875362808653657423813387124496122632219269226944975782747969308509448942429277233562654639293567532567668357917753810024961683829653277391094269518376510962710057956994339018307344554672056556222387849272880157861877494719706801624724491116189525394408237355854147113614645956561900837121715298276123085019204014577395795131906357190097536924932784935203378709529040555114884933996346694363879974847691625806412083107877442577777402405491226347699452398189866905599648314105255526411599513768016126067224570735746339691839657336828937030584950250402550603260483421505256395736457980708347396132620971927806636308105501893575073944959824958733880580825249931469481777083600987966500968473202481877213198175820182125298036242272662171321630056435823478710070315022531849275633515412140708923196338877549535352180465031450246889723670908173572778497329815806296369714467774385173078365517895215622645081749679859298824530173433952201710212962315524645807786760255396609101229899503687886977229729747349967302227815724222900649259120496955396616388023947812556426182596252076072286860171961582235043470190275528327438941205680729222092142315348205283459886659277456757338926863444370956987436702675569004062857510888080701482282900718067707825890168959050535970636214821273965900140346587802750221148933877600652180282267212515086387728695565345543441575183083490091817551421389124038251086513387106526847199935776240422217886407416027185332010280169564289345500368555274327733580514983967396271907637608170801013991375555069570288329399237332712790289521766624379537848996471168926519414464863388365890585061582441222989105844636887033599262856636618609644981203616618819656730174147506366895579518927217154437260067784133452192099436160162797896733220282837763342940047719962882720310397266700665603774047807673735452896542215047419894928360985667680051383584281780118001522220147385455276205847620842066894760474814386271419398361771509559702341442734727141312211989794380570433135781896005067541537095546614638001539678780066976441749790924521292297473522803115912791790379839635473194794843511234906415092857115568242448079933264380632375450234146479596225552359821776361923588178896354011117990551249184457345201223244319766597339520899930287542362386381372955844126876031262062731835081542890548095759704856479235361996156162229417953890962902505112862674541020677153054937034038823204321411753183982406667628845943390275194956321260584953509501973880059966268311741789559039618821364775407403947492157311255310143283125490988585303127442698159113924719563571459841025286208880511134222538431747221840824203312684036627017414295981003169360893015436564680773233890198618904647085929678054127680367983802905553144716598061593632352021737488422700265144189474970515439967472618438343180405852959047054139020095303915498443045344690691354304662161461750826840689185141612937350984288238847592910919431788170821390987459951181698659544772214696392241600642992000900364649438402093845534643663733216626212187314397293309505677932731383013397665193960914949915855970134736764497124186701371371881061763702617034928084811708964018610410971938419410791443362686750151572343348438861493025667676713

Programy Befunge-98 zostały przetestowane z tym tłumaczem .

Rozwiązanie:

62 92671758747582594731336103958852355343308794409787718910287760272065096600068486400261521203099179296478278113800406388237579729434074471528101978922110199511009255327569364221068648720732186414156697930516237153253745234146558781777104311285708042469572129997820696177040412749585193035961972308024909384538547357820271391461203855177879703963391294547499579588457829374981409596253284387318191154655397249791533591896711203680125312645807793061567274893660125978667479654664977040722935418267606762108334976561590548772755653088127344268269983549959628254712562135604114391709222466418283973346968039685907258341712475120187026707300070769277380483828579629391533415119380882514570806683534933872011332303802477012040660361613689139008855327957705058672774790021218679288003003953301651226513713984857174365383390364296326192225244927665294515693697694918935732394438095829822147927645949273829493190176397786165741955566462476231578299385726525505407052332068778469428870102672560545990553686935179657522071350801304923521681690806124866463401094200444841941834667455137491597902735287855498886460945851544063102556545691787612423033525861765804657417395955322217721677429700032333887700477665924915189639029356029794151144702621112140447347270986003871777552705154393697526621456025974679633450745341583481291685834000335168972075093212539251102818038917942913311300883294570091156661153874804268309393591292001433191276766990017144340677002050765359295580546228905861008474333888247511333039470305173620221481374758754343560048199433044290376988914313248904786418615239832295700238599693805552407166251501198275363727855984193340187485162706203747898935844148656997727555488455764358003951396850496841760348138874901474547533715922587211143833052692993182786162665394965914056238514702648647904702501871758140636318131208564891924287008550289224318358936576352473100482724524675417108540029486047223784009872784235439805791496176981701859374772960623187174667015174831665360382067784289660747175586412802848517818731070091826086320292632019033525579172665790335268736167170506003176022610987557889205903933680970434653929602313812168432779881423599218075810156457004870273456214668951969634696002866863369645150677406566613367576078149751561615160777945725724620047443832859087000460506626402089973036918592151204779260519899343451226942874643654023265001514280212345984966126290887141500898797940093805650642580450926977375576911590855135774911449619005627413806680159169643085790457809525639117624947749945044091079624534522626841372604654172723500062361904864176709974716350878399949908529715899937417421315012456868864220900338162700464737416505300734198857624165994112815507157337074226022552948626042899845891195024145834980781844015548398775284084741665926642729256313545870065439195137107807599897817556866239630270351410298105991743248934632486671734759038305157913444368204353943206369388913837519310828223093441519335111533635957953613758894822654736600526811789875376813119426924959017038654104216784121093688306563643326587639486472221258233221666454164763738631579246841130247019172136121041002571694545781948282785399495873501148416357057693713305042834246973535325571882393889489457235864027134943913383832461393499203435931881991959787045205816313165984531168137210464591653390767999403651750434079431253272021002273680565508340556736474927770564408343360602057949991306130979603289667991356237787412616305022971197507815004141825394838946364485315703051195195566893733123391158803413838803831010122718476800229685100410524315094662633390222854924884579083098055980542607258318868514903610787510921796157291630993618714015755412239872758443166948699744841899868754369627081727143351807615097715679652005998467491609044596871312950634152039807480021814406950780706131231897491212637759991818212542181136384052857191779658528790835620632765143337026858373660057972387266312097135260115742458792764792668883627539340807572869610941154184473111399152964165437112713815173281951728792354570851956468302291939952274005357250989986640723863408051924618400882866539701190471828299028566020683682444415198672952980294639217217840535225987439355834087974716313911977302809235338769491339553247328065401203243450045946392960085318343121705830317674151229536850726617093615850507955559652374337057819549481320081981520577039493601331233500403284295119207704095876958023271178964331413629547646937335760969491450824461526563643617594783473684358594189269252499897162333533284912320654686655888508024970105099967896167541978181602786701854274646885561632089896312016789257459673121974866871919820865433343707787147414982407950775979279255414469970743690769124215210050618943726165676550098723299244096267839544684847323547847832349290874282817429866612456451105673214159820212156069771415582214200701894487126822756864305461967035982308878073752362075553218935807632264803200753661147341613284071218919438723527468202903770806766095252957940538229987302177328543423522712562396242285027178395886649344

8
Zajęłoby wieki, aby złamać o_____O
TuxCrafting

4
Właściwy język dla Challenge
DLosc 11.11.16

26

Galaretka , 5 bajtów , wynik 0,8 (4/5) [ pęknięty! ]

R²Sƽ

Oblicza A127721 .

Wypróbuj online!


Oto rozwiązanie:

RÆḊḞ
  • niejawnie przyjmować dane wejściowe n
  • R: lista z [1, 2, ..., n]
  • ÆḊ: W naszym przypadku zwróci to pierwiastek kwadratowy z sumy kwadratów (co może być przydatne w przyszłym golfie)!
  • : podłoga wynik.

Dokumentacja dla ÆḊbrzmi:

ÆḊ: Determinant, rozszerzony na macierze niekwadratowe.

Klucz został rozszerzony na macierze niekwadratowe . „Wyznacznik” macierzy nie kwadratowej jest zwykle niezdefiniowany, ale jedną rozsądną definicją jest sqrt(det(A A^T))(do której zmniejsza się macierz kwadratowa |det(A)|). W naszym przypadku A A^Tjest to macierz 1 x 1 zawierająca sumę kwadratów. Pierwiastek kwadratowy z tego wyznacznika daje nam dokładnie to, czego potrzebujemy, aby ogolić ostatni bajt!


4
Witamy w Programowaniu zagadek i Code Golf!
Adnan,

2
Z ciekawości, czy jest to faktycznie możliwe w 4 bajtach? Utknąłem na tym od wielu godzin: str.
Adnan,

1
@Adnan, tak, to możliwe. Cieszę się, że to dla ciebie wyzwanie!
George V. Williams,


@ jimmy23013, tak, ładnie zrobione!
George V. Williams,

12

Siatkówka , 28 bajtów, wynik = 0,9286 ... (26/28), pęknięty przez feersum

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

Oblicza A192687 , (przesunięcie = 0).

Wypróbuj online! (Pierwszy wiersz włącza pakiet testowy oddzielony od linii).

Na tym polega różnica między męską i żeńską sekwencją Hofstadtera . ( Odpowiednie wyzwanie PPCG. )

To był mój oryginalny kod:

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

Ta odpowiedź i tak była trochę ryzykowna, ponieważ rzeczywiste rozwiązanie opiera się na wyrażeniu regularnym, które kilka miesięcy temu ogłosiłem, że jest najkrótszym znanym wyrażeniem regularnym testującym Fibonacciego na czacie. Na szczęście nikt nie pamiętał tego. :)



11

Sześciokąt , 91 bajtów, wynik = 0,725274725 (66/91) [Pęknięty]

Oblicza A000045 (sekwencja Fibonacciego, przesunięcie 0).

Nie zdziwię się, jeśli komuś uda się pokonać tę i moją bardziej golfową wersję , chociaż powinno to być trudne.

Edycja: Święta krowa, @MartinEnder pobił mnie 33-bajtowym rozwiązaniem.

Gra w golfa (91):

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

Sformatowany:

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

Wypróbuj online!

Nie zamierzam tego wyjaśniać, to zbyt okropne ...

Gra w golfa (66):

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

Sformatowany:

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

Kolorowy:

Fibonacci sequence

Wypróbuj online!

Wyjaśnienie:

Układ pamięci, którego użyłem, wygląda trochę tak:

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

Inicjalizacja (w kolorze czarnym) ustawia a = 0 ib = 1. Następnie główna pętla:

  • przechodzi od ado komórki wejściowej -'"
  • zmniejsza wejście - (
  • dodaje b i a - {{=+
  • przesuwa go „z drogi” - "+{=*
  • ustawia od a do b - '+
  • przenosi „z drogi” - '+}=*
  • przesuwa b + a z powrotem do pierwotnej pozycji - "=+
  • ustawia b na b + a - "+
  • przesuwa się z powrotem do pierwotnej pozycji - }+

Gdy komórka wejściowa osiągnie 0, MP przesuwa się do a, drukuje i wychodzi.

Co mogłem zrobić, aby zaoszczędzić więcej bajtów, to użyć &, który ustawia bieżącą komórkę albo na lewy, albo na prawy sąsiad. Mógłbym też mieć nieco lepszą kontrolę przepływu, ale w tej chwili jest w porządku.


Pęknięty. Dzięki za nakłonienie mnie do napisania programu Fibonacciego. Nie jestem pewien, dlaczego wcześniej tego nie robiłem. :)
Martin Ender,

W rzeczywistości używam &do przesunięcia danych wejściowych wokół krawędzi a / b / a + b, aby zamieniły się rolami podczas następnej iteracji. W ten sposób nie muszę wcale przesuwać a, b i a + b.
Martin Ender,

@MartinEnder Przepraszam, napisałem tę część, zanim spojrzałem na to, co naprawdę zrobił twój program. Twoje rozwiązanie jest znacznie bardziej sprytne
Blue

10

M , 10 bajtów , wynik 0,6 (6/10) [ pęknięty ]

R‘ạḤc’*@RP

Odrobina oszustwa, ponieważ M i Jelly są dość podobne, ale dozwolone przez reguły. Ta wersja jest oparta na pęknięciu @ LeakyNun na moją odpowiedź Jelly.

Oblicza to sekwencję A068943 . Wypróbuj online!

Zamierzone rozwiązanie

Poniższy kod działa w M / Jelly.

R¹¡PÐL

Właściwie miałem 4-bajtowe rozwiązanie, do którego dodałem trochę puchu, aby utrudnić złamanie przy użyciu brutalnej siły.

R¡FP

Wypróbuj online!

To właśnie wyjaśnię.

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.

Pęknięty! To była zabawa!
mile

10

Stack Cats , 14 bajtów, wynik = 13/14 = 0,929 [ pęknięty ]

To 10 bajtów kodu plus 4 dla argumentów -nm.

Oblicza A017053 . W przypadku awarii OEIS zaczyna się a(n) = 7n + 6od n = 0.

![_-_:-_-_

Pełny kod (dostępny bez -margumentów) to![_-_:-_-_-_-:_-_]!

Ukrytym rozwiązaniem było

!]|{_+:}_




6

Brachylog , 27 bajtów, wynik = 0,666 ... (18/27), pęknięty!

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

Oblicza A010551 (przesunięcie = 0).

Możesz spróbować online tutaj .

Wyjaśnienie

Ponieważ ogromna większość ludzi nie zna tego języka, a ponieważ zamieszczam tę odpowiedź głównie po to, aby zachęcić ludzi do jej przeglądania (patrz: Wiki Brachylog ), przedstawię krótkie wyjaśnienie powyższego kodu:

+           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 bajty, wynik = 0,9623 (51/53) Pęknięty

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

Oblicza sekwencję Perrina, A001608

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

Pierwsza próba golfowego kodu, możesz wskazać wszelkie błędy.

Objaśnienie po pęknięciu:

mile skróciły pierwsze trzy wartości (0,1,2) -> (3,0,2) do

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

podczas gdy moje własne rozwiązanie było nieco przeprojektowane

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

Łącząc dwie sztuczki, otrzymujesz

n<3?3-3*n%5

dla 47 bajtów

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

który wygląda na dość kompaktowy jak na Javę :)



5

Cheddar, 7 bajtów, wynik = 0,8571 (6/7), [pęknięty]

n->2**n

Całkiem proste, tylko potęga dwóch. OEIS A000079

Wypróbuj online!


2
Uh, twórcy języków mają tu przewagę ...
Dennis

10
Zwłaszcza twórcy języków, których języków brakuje w dokumentacji.
Mego


2
@Mego to kod samodokumentujący nie jest uważany za dokument? Recenzenci kodu mnie okłamali! D: <
Downgoat

1
@Downgoat Kiedy masz link na swojej stronie o nazwie „Dokumentacja” i jest on żałośnie niepełny ... Tak.
Mego


4

Python 2, 43 bajty, wynik = 0,9302 (40/43), pęknięty

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

Oblicza A072493

Zobaczmy, czy ktokolwiek może grać w golfa na wszystkich 3 bajtach.


Czekaj, czy to naprawdę w porządku, jeśli Truejest używane do reprezentowania 1?
R. Kap


s=1;exec"a=-(-s/3);s+=a;"*input();print aza 41.
orlp

@ R.Kap tak, tak jest. Każda wartość, która jest prawdziwa ( if xjest prawdziwa), jest prawidłowym zwrotem.
Rɪᴋᴇʀ

4

Pyke, 11 bajtów, wynik = 0,45 (5/11) [pęknięty]

hZRVoeX*oe+

Oblicza OEIS A180255

Wypróbuj tutaj!


1
Chciałem spróbować, ale dokumentacja języka nie jest zbyt pouczająca. (np. Zjest nieudokumentowane; język twierdzi, że jest oparty na stosie, ale po *nim na stosie są tylko zera, mimo że ma wpływ na resztę kodu; kolejność parametrów nie jest jasno określona)
Score_Under

1
@Score_Under, co mogę zrobić, aby to poprawić? - Bardzo chętnie rozmawiam na czacie o tym, co jest niejasne
Blue

Pewnie. Nie wiem, jak rozpocząć czat, ale zredagowałem powyższy komentarz z kilkoma przykładami - myślałem, że będę w stanie go zdobyć, zanim go przeczytasz;)
Score_Under






3

Sesos , 14 bajtów, wynik = 0,8571 (12/14) ( pęknięty )

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

Oblicza A000290 .

Wypróbuj online!

Poradnik

Ten plik binarny został wygenerowany przez następujący asembler:

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 bajtów, wynik = 0,8181 (9/11), pęknięty

YftdA-1bn^*

Oblicza funkcję Möbius lub A087811 (przesunięcie 1).

Wypróbuj online!

Zasoby dla rabusiów

Myślę, że to powinno być łatwe, ale w każdym razie tutaj jest pomoc.

Objaśnienie kodu:

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

Dokumentacja językowa .

Mátl chatroom .



@feersum Dobra robota! Dla porównania, wersja 9-bajtowy byłoYftdA_wn^
Luis Mendo


3

MarioLANG , 87 bajtów, wynik = 0,839 (73/87), pęknięty

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

Oblicza A000217 , liczby trójkątne. Przesunięcie 0.

Wypróbuj online!

Krótkie rozwiązanie:

Ponieważ crack zabrał tylko 1 bajt, podzielę się moim rozwiązaniem w 73 bajtach, które wykorzystują zupełnie inny algorytm:

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

Wypróbuj online!

Pierwszy program określa wszystkie liczby od n do 1 wzdłuż taśmy, a następnie sumuje wszystkie liczby, aż natrafi na komórkę o wartości 0. Robi to, kopiując każdą komórkę do dwóch sąsiednich komórek, zmniejszając odpowiednią kopię i powtarzając na niej proces, aż osiągnie 0. Podczas tego procesu taśma wygląda następująco (dla 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

... i tak dalej. Następnie przesuwa się w lewo, sumując komórki, aż osiągnie komórkę z 0.

Drugi program działa tylko z trzema komórkami taśmy. Dopóki pierwsza komórka nie osiągnie 0, wykonuje następujące czynności:

  • Przenieś wartość pierwszej komórki do drugiej komórki.
  • Zmniejsz drugą komórkę do 0, dodając własną wartość do pierwszej i trzeciej komórki.
  • Zmniejszenie pierwszej komórki.

Gdy pierwsza komórka osiągnie 0, trzecia komórka będzie zawierać n + (n-1) + (n-2) + ... + 2 + 1.


Czy twoja 87-bajtowa wersja działa w innym tłumaczu? Ten na Tio! zdaje się wymagać końca nowej linii ...
Dennis,

@Dennis: Działa na tłumaczu Ruby bez nowej linii. Z jakiegokolwiek powodu interpreter w TIO nie wyjdzie z a, :jeśli znajduje się on w dolnej linii, dlatego umieściłem końcowy znak nowej linii w linku. Martin i ja rozmawialiśmy o tym w jednej z moich odpowiedzi MarioLANG.
Business Cat

OK, tylko sprawdzam. Dodałem opakowanie dla Tio! który dodaje nowy wiersz do kodu źródłowego.
Dennis



3

Haskell, 28 bajtów, wynik = 0,3571 (10/28), pęknięty

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

A006519 , najwyższa moc dzieląca 2 n, począwszy od n=1.

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

Podczas gdy dostajesz kredyt za skrócenie dowolnego kodu, uważam, że prawdziwą łamigłówką jest sprowadzanie do 10 bajtów.



@nimi Gratulacje, masz to.
xnor






Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.