Você pode me superar? (Seção Policiais)


84

Seção Policiais

A seção de ladrões pode ser encontrada aqui .

Agradecemos a FryAmTheEggman , Peter Taylor , Nathan Merrill , xnor , Dennis , Laikoni e Mego por suas contribuições.


Desafio

Sua tarefa é escrever 2 programas diferentes ( programas / funções completos / etc. ) Na mesma linguagem e na mesma versão (por exemplo, Python 3.5 ≠ Python 3.4, para que isso não seja permitido) e quando fornecido n (usando argumentos STDIN / function / etc. ), calcule a (n) onde a é uma sequência OEIS de sua escolha. Um desses programas é mais curto que o outro. Você só precisa enviar o programa mais longo dos dois. O outro precisa ser salvo caso não seja quebrado após 7 dias. Seu envio é quebrado quando seu programa é ultrapassado (seja por 1 byte ou mais).

Por exemplo, se a tarefa que você escolheu foi executar 2 × n , este poderia ser um envio válido (no Python 2):

Python 2, 16 bytes, pontuação = 15/16 = 0,9375

print(2*input())

Calcula A005843 , (deslocamento = 0).

Se o seu envio foi quebrado, você precisa declarar isso no cabeçalho da seguinte forma:

Python 2, 16 bytes, pontuação = 15/16 = 0,9375, [rachado] + link

print(2*input())

Calcula A005843 , (deslocamento = 0).


Deslocamento

Isso pode ser encontrado em todas as páginas OEIS. Por exemplo, para A005843 , o deslocamento é 0,2. Nós só precisamos usar o primeiro, que é 0. Isso significa que a função está definida para todos os números ≥ 0.

Em outras palavras, a função OEIS (n) começa com n = 0 . Seu programa precisa funcionar para todos os casos fornecidos pelo OEIS.

Mais informações podem ser encontradas aqui .


Pontuação

A pontuação que você obtém para o envio é igual à seguinte fórmula:

Pontuação = Comprimento (em bytes) do código secreto ÷ Comprimento (em bytes) do código público

O exemplo acima tem a pontuação 15 ÷ 16 = 0,9375.

A finalização com a menor pontuação vence. Somente envios que postaram sua solução serão elegíveis para ganhar.


Regras

  • A tarefa que você precisa fazer é uma sequência OEIS de sua escolha.
  • Dado n , output OEIS (n) . O desvio não é permitido, portanto, é necessário produzir exatamente a mesma sequência (quando fornecido n, é necessário gerar OEIS (n)).
  • Os envios que não forem quebrados dentro de um período de 7 dias serão considerados seguros após a publicação da solução (envios com mais de 7 dias que não tiveram sua solução publicada ainda serão vulneráveis ​​a serem quebrados).
  • Em seu envio, você precisa postar o seguinte: nome do idioma , contagem de bytes , código completo , para que não haja links de pastas etc. (para evitar respostas como Unary), sequência OEIS , pontuação com os comprimentos de ambos os programas e, adicionalmente, a codificação que é usado.
  • Nota: a mesma sequência não pode ser postada duas vezes no mesmo idioma. (Por exemplo, se a sequência A005843 tiver sido executada em Pyth, não será possível usá-lo novamente para a mesma sequência.)
  • Entrada e saída estão em decimal (base 10)

Entre os melhores

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

Nota

Este desafio está terminado. O vencedor final é feersum com sua resposta Seed . Parabéns! :).

Você ainda pode enviar novos policiais, mas lembre-se de que eles não estão mais competindo.


2
@ Andan Isso parece lamentável. Digamos que eu escreva um golfe com vários truques inteligentes que melhoram a fórmula óbvia. Se eu postar a fórmula óbvia, qualquer um poderá encontrar uma melhoria e vencer. Ou, tenho que dar uma gorjeta na minha mão e abrir mão de todas as melhorias, exceto uma. Você consideraria mudar isso, se não for tarde demais? Desculpe por não pensar nisso nesta caixa de areia, só notei ao tentar o desafio a sério.
Xnor

4
@ xnor Hmm, isso causaria um grande problema com o mecanismo de pontuação. Você pode então fazer uma submissão arbitrariamente grande e uma curta quase impossível e vencer o desafio.
Adnan

3
@ Adnan Você pode resolver isso definindo score = len (código secreto) / min {len (código público), len (código mais curto publicado por ladrões)}.
Anders Kaseorg 6/16

3
@Adnan O contexto é a sugestão do xnor de fazer a pontuação valer se os ladrões baterem sua pontuação pública, mas não corresponderem à sua pontuação secreta. Estou propondo uma maneira de fazer isso funcionar, evitando o problema com o qual você está preocupado.
Anders Kaseorg 6/16

3
Sim, finalmente, outro desafio de Cooooops e Rooooobbbbbers.
usar o seguinte comando

Respostas:


36

Semente , 5861 bytes, pontuação = 5012/5861 = 0,85

A sequência é primos ( A000040 ) com deslocamento 1. a (1) = 2, a (2) = 3, a (3) = 5 etc.

106 4339425277766562922902283581834741289660008085947971671079664775075736459902652798498038280771739790213868067702391567527146683746696872737118568202495046682058807677834082334206717794057290386357040004038910321326390033894692316122893125849512049817771469697446796247656883761642659391998672259889315862253584980121050081936190889196979721443972131545258528161479083569474217100401074866410321578452749003295370495810488337344650619973376676577461877392643228932028285261311284691649403036725905675576380944186859525020321196255472295415627414823269713084816196540461818684672201926996228242729726187404845487167114556965625764494860789841409004737497250600337038738035289643512265772877903971230007222865264200102217827010958702813633039465646713707971175729900391272165457566364779628858903697222589748797809421482136725017988969980267265196209027326008642464190920825439635011414535065156799655809935871795742526416544853103823906918352472744460644939241345215614650110978624804796257165525598653433482592675123776747497586586903140407616610040250976121531777891358439091358523224019193934111409521776865798864774150127996987606796522094617839125169013781373842026970010007574244564780540958252950607459585834584855526028427463655493110963000525209314274839412714497954647707284352161251044088451086878301225167181712809612927720502228546704347274977503482518386819117870800284276687560241308964641752876311905619184965236937789822712948719170589044519552259399272657757694404103028213338440810122219269214268424256451648966039627998513353115348057963135398345514276156595104642595820063441019481255889600472121104059631555738973905087895006671206400595057069658845297458058584470727379036742268107372233190371861824194831387484478317333784774872796689435056263039565495723444232483369405079512770383639748492508848098080619713255928884946598796741958520788406091704951276729428229224292748702301286318784744573918534142896761450194446126776354892827260482520089107240497527796383449573487121759294618654056309957794765646022274249211113876873102681817500947681708211056388348991201016699342850495527766741633390367735662514559206616070479934780700857859919517187362382258597709910134111383911258731633002354208155277838257255571878219168563173495861133946240923601273185050088148273459064040178741322137494758164795598458780786653602794809987537740537018415433767449108362051063814315399931951925462073202072886716208053889630274798247936580024665863765351912184189125660586187615847325588786048095120241198943086897428919324650596915625795076460123743259068671341944912206659194476673792489442514470540309819938731582497982088632076086088279435186513066668502875362808653657423813387124496122632219269226944975782747969308509448942429277233562654639293567532567668357917753810024961683829653277391094269518376510962710057956994339018307344554672056556222387849272880157861877494719706801624724491116189525394408237355854147113614645956561900837121715298276123085019204014577395795131906357190097536924932784935203378709529040555114884933996346694363879974847691625806412083107877442577777402405491226347699452398189866905599648314105255526411599513768016126067224570735746339691839657336828937030584950250402550603260483421505256395736457980708347396132620971927806636308105501893575073944959824958733880580825249931469481777083600987966500968473202481877213198175820182125298036242272662171321630056435823478710070315022531849275633515412140708923196338877549535352180465031450246889723670908173572778497329815806296369714467774385173078365517895215622645081749679859298824530173433952201710212962315524645807786760255396609101229899503687886977229729747349967302227815724222900649259120496955396616388023947812556426182596252076072286860171961582235043470190275528327438941205680729222092142315348205283459886659277456757338926863444370956987436702675569004062857510888080701482282900718067707825890168959050535970636214821273965900140346587802750221148933877600652180282267212515086387728695565345543441575183083490091817551421389124038251086513387106526847199935776240422217886407416027185332010280169564289345500368555274327733580514983967396271907637608170801013991375555069570288329399237332712790289521766624379537848996471168926519414464863388365890585061582441222989105844636887033599262856636618609644981203616618819656730174147506366895579518927217154437260067784133452192099436160162797896733220282837763342940047719962882720310397266700665603774047807673735452896542215047419894928360985667680051383584281780118001522220147385455276205847620842066894760474814386271419398361771509559702341442734727141312211989794380570433135781896005067541537095546614638001539678780066976441749790924521292297473522803115912791790379839635473194794843511234906415092857115568242448079933264380632375450234146479596225552359821776361923588178896354011117990551249184457345201223244319766597339520899930287542362386381372955844126876031262062731835081542890548095759704856479235361996156162229417953890962902505112862674541020677153054937034038823204321411753183982406667628845943390275194956321260584953509501973880059966268311741789559039618821364775407403947492157311255310143283125490988585303127442698159113924719563571459841025286208880511134222538431747221840824203312684036627017414295981003169360893015436564680773233890198618904647085929678054127680367983802905553144716598061593632352021737488422700265144189474970515439967472618438343180405852959047054139020095303915498443045344690691354304662161461750826840689185141612937350984288238847592910919431788170821390987459951181698659544772214696392241600642992000900364649438402093845534643663733216626212187314397293309505677932731383013397665193960914949915855970134736764497124186701371371881061763702617034928084811708964018610410971938419410791443362686750151572343348438861493025667676713

Os programas Befunge-98 foram testados com este intérprete .

Solução:

62 92671758747582594731336103958852355343308794409787718910287760272065096600068486400261521203099179296478278113800406388237579729434074471528101978922110199511009255327569364221068648720732186414156697930516237153253745234146558781777104311285708042469572129997820696177040412749585193035961972308024909384538547357820271391461203855177879703963391294547499579588457829374981409596253284387318191154655397249791533591896711203680125312645807793061567274893660125978667479654664977040722935418267606762108334976561590548772755653088127344268269983549959628254712562135604114391709222466418283973346968039685907258341712475120187026707300070769277380483828579629391533415119380882514570806683534933872011332303802477012040660361613689139008855327957705058672774790021218679288003003953301651226513713984857174365383390364296326192225244927665294515693697694918935732394438095829822147927645949273829493190176397786165741955566462476231578299385726525505407052332068778469428870102672560545990553686935179657522071350801304923521681690806124866463401094200444841941834667455137491597902735287855498886460945851544063102556545691787612423033525861765804657417395955322217721677429700032333887700477665924915189639029356029794151144702621112140447347270986003871777552705154393697526621456025974679633450745341583481291685834000335168972075093212539251102818038917942913311300883294570091156661153874804268309393591292001433191276766990017144340677002050765359295580546228905861008474333888247511333039470305173620221481374758754343560048199433044290376988914313248904786418615239832295700238599693805552407166251501198275363727855984193340187485162706203747898935844148656997727555488455764358003951396850496841760348138874901474547533715922587211143833052692993182786162665394965914056238514702648647904702501871758140636318131208564891924287008550289224318358936576352473100482724524675417108540029486047223784009872784235439805791496176981701859374772960623187174667015174831665360382067784289660747175586412802848517818731070091826086320292632019033525579172665790335268736167170506003176022610987557889205903933680970434653929602313812168432779881423599218075810156457004870273456214668951969634696002866863369645150677406566613367576078149751561615160777945725724620047443832859087000460506626402089973036918592151204779260519899343451226942874643654023265001514280212345984966126290887141500898797940093805650642580450926977375576911590855135774911449619005627413806680159169643085790457809525639117624947749945044091079624534522626841372604654172723500062361904864176709974716350878399949908529715899937417421315012456868864220900338162700464737416505300734198857624165994112815507157337074226022552948626042899845891195024145834980781844015548398775284084741665926642729256313545870065439195137107807599897817556866239630270351410298105991743248934632486671734759038305157913444368204353943206369388913837519310828223093441519335111533635957953613758894822654736600526811789875376813119426924959017038654104216784121093688306563643326587639486472221258233221666454164763738631579246841130247019172136121041002571694545781948282785399495873501148416357057693713305042834246973535325571882393889489457235864027134943913383832461393499203435931881991959787045205816313165984531168137210464591653390767999403651750434079431253272021002273680565508340556736474927770564408343360602057949991306130979603289667991356237787412616305022971197507815004141825394838946364485315703051195195566893733123391158803413838803831010122718476800229685100410524315094662633390222854924884579083098055980542607258318868514903610787510921796157291630993618714015755412239872758443166948699744841899868754369627081727143351807615097715679652005998467491609044596871312950634152039807480021814406950780706131231897491212637759991818212542181136384052857191779658528790835620632765143337026858373660057972387266312097135260115742458792764792668883627539340807572869610941154184473111399152964165437112713815173281951728792354570851956468302291939952274005357250989986640723863408051924618400882866539701190471828299028566020683682444415198672952980294639217217840535225987439355834087974716313911977302809235338769491339553247328065401203243450045946392960085318343121705830317674151229536850726617093615850507955559652374337057819549481320081981520577039493601331233500403284295119207704095876958023271178964331413629547646937335760969491450824461526563643617594783473684358594189269252499897162333533284912320654686655888508024970105099967896167541978181602786701854274646885561632089896312016789257459673121974866871919820865433343707787147414982407950775979279255414469970743690769124215210050618943726165676550098723299244096267839544684847323547847832349290874282817429866612456451105673214159820212156069771415582214200701894487126822756864305461967035982308878073752362075553218935807632264803200753661147341613284071218919438723527468202903770806766095252957940538229987302177328543423522712562396242285027178395886649344

8
Isso levaria séculos para quebrar o_____O
TuxCrafting 4/11/16

4
O idioma certo para o desafio
DLosc

26

Geléia , 5 bytes , pontuação 0,8 (4/5) [ rachado! ]

R²Sƽ

Calcula A127721 .

Experimente online!


Aqui está a solução:

RÆḊḞ
  • implicitamente ter entrada n
  • R: lista de [1, 2, ..., n]
  • ÆḊ: No nosso caso, isso retornará a raiz quadrada da soma dos quadrados (o que pode ser útil no futuro no golfe)!
  • : andar o resultado.

A documentação para ÆḊleituras:

ÆḊ: Determinante, estendido para matrizes não quadradas.

A chave é estendida para matrizes não quadradas . O "determinante" de uma matriz não quadrada é geralmente indefinido, mas uma definição razoável é sqrt(det(A A^T))(que para uma matriz quadrada se reduz a |det(A)|). No nosso caso, A A^Té uma matriz 1 x 1 contendo a soma dos quadrados. A raiz quadrada do determinante disso nos dá exatamente o que precisamos para remover o último byte!


4
Bem-vindo à Programação de Puzzles e Code Golf!
Adnan

2
Por curiosidade, isso é realmente possível em 4 bytes? Estou preso há horas: p.
Adnan

11
@ Adnan, sim, é possível. Fico feliz em saber que você está achando um desafio!
George V. Williams


@ jimmy23013, sim, muito bem feito!
George V. Williams

12

Retina , 28 bytes, pontuação = 0,9286 ... (26/28), quebrada por feersum

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

Calcula A192687 , (deslocamento = 0).

Experimente online! (A primeira linha ativa um conjunto de testes separado por avanço de linha.)

Essa é a diferença entre as seqüências masculina e feminina de Hofstadter . ( Desafio relevante do PPCG. )

Este foi o meu código original:

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

De qualquer forma, essa resposta foi um pouco arriscada, porque a solução real é baseada em uma regex que anunciei como a regex de teste de Fibonacci mais curta conhecida no bate-papo há alguns meses. Felizmente, ninguém parecia se lembrar disso. :)



11

Hexagonia , 91 bytes, Pontuação = 0,725274725 (66/91) [Rachado]

Calcula A000045 (sequência de Fibonacci, deslocamento 0).

Não ficarei muito surpreso se alguém conseguir vencer essa e minha versão mais golfe , embora deva ser difícil.

Edit: Santo vaca, @MartinEnder me chicoteado com uma solução de 33 bytes.

Golfe (91):

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

Formatado:

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

Experimente online!

Não vou postar uma explicação para isso, é horrível demais ...

Golfe (66):

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

Formatado:

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

Colori:

Sequência de Fibonacci

Experimente online!

Explicação:

O layout da memória que usei se parece um pouco com isso:

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

A inicialização (em preto) define a = 0 eb = 1. Então, o loop principal:

  • vai da acélula de entrada -'"
  • diminui a entrada - (
  • adiciona be - {{=+
  • move "fora do caminho" - "+{=*
  • define a para b - '+
  • move um "fora do caminho" - '+}=*
  • move b + a de volta à sua posição original - "=+
  • define b para b + a - "+
  • move uma volta para sua posição original - }+

Quando a célula de entrada atinge 0, o MP se move para a, imprime e sai.

O que eu poderia ter feito para salvar mais bytes é usar &, que apenas define a célula atual como seu vizinho esquerdo ou direito. Eu também poderia ter um controle de fluxo um pouco melhor, mas tudo bem como está.


Rachado. Obrigado por me fazer escrever um programa de Fibonacci. Não sei por que não fiz isso antes. :)
Martin Ender

Na verdade, o que estou usando &é mover a entrada pelas bordas a / b / a + b para que eles troquem suas funções na próxima iteração. Dessa maneira, não preciso mover a, b e a + b.
Martin Ender

@ MartinEnder Desculpe, eu escrevi essa parte antes de analisar o que seu programa realmente fez. Sua solução é muito mais inteligente
azul

10

M , 10 bytes , pontuação 0,6 (6/10) [ rachado ]

R‘ạḤc’*@RP

Um pouco barato, já que M e Jelly são bastante semelhantes, mas permitidas pelas regras. Esta versão é baseada no crack do @ LeakyNun na minha resposta da Jelly.

Calcula a sequência A068943 . Experimente online!

Solução pretendida

O código a seguir funciona em M / Jelly.

R¹¡PÐL

Na verdade, eu tinha uma solução de 4 bytes à qual adicionei alguns cotões para tornar mais difícil de quebrar usando força bruta.

R¡FP

Experimente online!

Este é o que eu vou explicar.

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.

Rachado! Foi divertido!
milhas

10

Empilhe gatos , 14 bytes, pontuação = 13/14 = 0,929 [ rachado ]

São 10 bytes de código, mais 4 para os argumentos -nm.

Calcula A017053 . Caso o OEIS esteja inoperante, é isso que a(n) = 7n + 6começa a partir de n = 0.

![_-_:-_-_

O código completo (utilizável sem -margumento) é![_-_:-_-_-_-:_-_]!

A solução oculta foi

!]|{_+:}_




6

Brachylog , 27 bytes, pontuação = 0,666 ... (18/27), Rachado!

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

Calcula A010551 (deslocamento = 0).

Você pode experimentá-lo online aqui .

Explicação

Como a grande maioria das pessoas não conhece esse idioma, e como estou postando essa resposta principalmente para atrair as pessoas (consulte: Wiki de Brachylog ), fornecerei uma breve explicação do código acima:

+           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 bytes, pontuação = 0,9623 (51/53) Cracked

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

Calcula a sequência Perrin, A001608

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

Primeira tentativa de golfe com código, sinta-se à vontade para apontar erros.

Explicação após rachaduras:

milhas reduziu os três primeiros valores (0,1,2) -> (3,0,2) para

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

enquanto minha própria solução era um pouco

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

Combinando os dois truques, você obtém

n<3?3-3*n%5

para um byte de 47 bytes

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

que parece bastante compacto para Java :)



5

Cheddar, 7 bytes, pontuação = 0,8571 (6/7), [rachado]

n->2**n

Muito simples, apenas os poderes de dois. OEIS A000079

Experimente online!


2
Uh, criadores de linguagem estão em vantagem aqui ...
Dennis

10
Especialmente criadores de idiomas cujos idiomas faltam na documentação.
Mego


2
@Mego código de auto-documentação não é considerado documento? Os revisores de código mentiram para mim! D: <
Downgoat 7/08/16

11
@Downgoat Quando você tem um link no seu site chamado "Documentação" e é lamentavelmente incompleto ... Sim.
Mego


4

Python 2, 43 bytes, pontuação = 0,9302 (40/43), quebrado

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

Computa A072493

Vamos ver se alguém pode jogar fora todos os 3 bytes.


Espere, está tudo bem se Truefor usado para representar 1?
R. Kap


s=1;exec"a=-(-s/3);s+=a;"*input();print apara 41.
orlp 6/08/16

@ R.Kap sim, é. Qualquer valor que seja if xverdadeiro ( é verdadeiro) é um retorno válido.
Rɪᴋᴇʀ

4

Pyke, 11 bytes, pontuação = 0,45 (5/11) [rachado]

hZRVoeX*oe+

Calcula OEIS A180255

Experimente aqui!


11
Eu queria experimentar isso, mas a documentação para o idioma não é muito esclarecedora. (por exemplo, Znão é documentado, a linguagem afirma ser empilhar-base, mas depois da *existem apenas zeros na pilha apesar de ter um efeito sobre o resto do código; ordem dos parâmetros não está claramente especificado)
Score_Under

11
@Score_Under o que eu poderia fazer para melhorá-lo? - Perfeitamente feliz para discutir em uma sala de bate-papo sobre o que está claro
azul

Certo. Eu não sei como começar uma conversa, mas eu editei a minha comentário acima com alguns exemplos - Eu pensei que eu seria capaz de obtê-lo em antes de lê-lo;)
Score_Under






3

Sesos , 14 bytes, pontuação = 0,8571 (12/14) ( rachado )

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

Calcula A000290 .

Experimente online!

Dicas

Este arquivo binário foi gerado pelo seguinte assembler:

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 bytes, pontuação = 0,8181 (9/11), quebrado

YftdA-1bn^*

Calcula a função Möbius , ou A087811 (deslocamento 1).

Experimente online!

Recursos para ladrões

Eu acho que este deve ser fácil, mas de qualquer maneira aqui está uma ajuda.

Explicação do código:

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

Documentação de idioma .

Sala de chat MATL .



@feersum Muito bem! Para referência, a versão de 9 bytes foiYftdA_wn^
Luis Mendo


3

MarioLANG , 87 bytes, pontuação = 0,839 (73/87), quebrado

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

Calcula A000217 , os números triangulares. Deslocamento 0.

Experimente online!

Solução curta:

Como o crack tirou apenas 1 byte, compartilharei minha solução em 73 bytes, que usa um algoritmo diferente:

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

Experimente online!

O primeiro programa estabelece todos os números de n a 1 ao longo da fita e, em seguida, soma todos os números até encontrar uma célula de valor 0. Isso é feito copiando cada célula nas duas células adjacentes, diminuindo a cópia correta e repetindo o processo até atingir 0. Durante esse processo, a fita fica assim (para 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

... e assim por diante. Em seguida, ele se move para a esquerda, somando as células até atingir uma célula com 0.

O segundo programa funciona apenas com três células da fita. Até a primeira célula atingir 0, ele faz o seguinte:

  • Mova o valor da primeira célula para a segunda célula.
  • Decrescente a segunda célula para 0, adicionando seu próprio valor à primeira e terceira células.
  • Decrementar a primeira célula.

Após a primeira célula atingir 0, a terceira célula conterá n + (n-1) + (n-2) + ... + 2 + 1.


Sua versão de 87 bytes funciona em outro intérprete? Aquele em Tio! parece exigir uma nova linha de fuga ...
Dennis

@Dennis: Ele funciona no interpretador Ruby sem a nova linha. Por qualquer motivo, o intérprete no TIO não produzirá a partir de um :se estiver na linha inferior, e foi por isso que incluí a nova linha no final do link. Martin e eu discutimos isso em outra das minhas respostas do MarioLANG.
Business Cat

OK, apenas verificando. Adicionei wrapper para Tio! que acrescenta uma nova linha ao código-fonte.
Dennis



3

Haskell, 28 bytes, pontuação = 0,3571 (10/28), quebrado

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

A006519 , a potência mais alta de 2 n, começando em n=1.

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

Enquanto você obtém crédito por qualquer código menor, considero que o verdadeiro quebra-cabeça está chegando a 10 bytes.



Parabéns @nimi, você conseguiu.
Xnor






Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.