Вы можете превзойти меня? (Раздел «Менты»)


84

Раздел ментов

Раздел грабителей можно найти здесь .

Благодаря FryAmTheEggman , Питер Тейлор , Натан Меррилл , XNOR , Деннис , Laikoni и Mego за их вклад.


Вызов

Ваша задача состоит в том, чтобы написать 2 разные программы ( полные программы / функции / и т. Д. ) На одном и том же языке и в одной и той же версии (например, Python 3.5 ≠ Python 3.4, так что это не разрешено), и когда задано n (используя аргументы STDIN / функции / etc. ), вычислите a (n), где a - последовательность OEIS по вашему выбору. Одна из этих программ короче другой. Вам нужно только представить более длинную программу из двух. Другой должен быть сохранен на случай, если он не будет взломан через 7 дней. Ваше представление взломано, когда ваша программа была превзойдена (будь то на 1 байт или более).

Например, если выбранная вами задача состояла в том, чтобы выполнить 2 × n , это может быть допустимой отправкой (в Python 2):

Python 2, 16 байт, оценка = 15/16 = 0,9375

print(2*input())

Вычисляет A005843 , (смещение = 0).

Если ваша заявка была взломана, вам нужно указать это в заголовке следующим образом:

Python 2, 16 байт, оценка = 15/16 = 0,9375, [взломан] + ссылка

print(2*input())

Вычисляет A005843 , (смещение = 0).


офсет

Это можно найти на каждой странице OEIS. Например, для A005843 смещение равно 0,2. Нам нужно использовать только первый, который есть 0. Это означает, что функция определена для всех чисел ≥ 0.

Другими словами, функция OEIS (n) начинается с n = 0 . Ваша программа должна работать для всех случаев, указанных OEIS.

Более подробную информацию можно найти здесь .


счет

Оценка, которую вы получаете за ваше представление, равна следующей формуле:

Оценка = Длина (в байтах) секретного кода ÷ Длина (в байтах) открытого кода

Пример выше имеет оценку 15 ÷ 16 = 0,9375.

Представление с самым низким счетом выигрывает. Только материалы, опубликовавшие свое решение, будут иметь право на победу.


правила

  • Задача, которую вам нужно выполнить, представляет собой последовательность OEIS по вашему выбору.
  • Учитывая n , выведите OEIS (n) . Отклонение не допускается, поэтому вам нужно создать точно такую ​​же последовательность (если задано n, вам нужно вывести OEIS (n)).
  • Заявки, которые не были взломаны в течение 7 дней, считаются безопасными после публикации решения (заявки старше 7 дней, в которых не было опубликовано решение, все еще уязвимы для взлома).
  • В вашем представлении вам необходимо опубликовать следующие вещи: имя языка , количество байтов , полный код , чтобы не было вставок ссылок и т. Д. (Для предотвращения ответов, таких как Unary), последовательность OEIS , партитура с длинами обеих программ и, кроме того, кодировка, которая используется.
  • Примечание: одна и та же последовательность не может быть опубликована дважды на одном языке. (Например, если последовательность A005843 была сделана в Pyth, вы не можете снова использовать Pyth для этой же последовательности.)
  • Вход и выход представлены в десятичном формате (основание 10)

Leaderboard

<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 с ответом Seed . Поздравляем! :).

Вы по-прежнему можете отправлять новых копов, но имейте в виду, что они больше не соревнуются.


2
@Andan Это кажется неудачным. Скажем, я пишу гольф с множеством хитрых трюков, которые улучшают очевидную формулу. Если я опубликую очевидную формулу, любой сможет найти одно улучшение и победить. Или я должен опрокинуть руку и отдать все улучшения, кроме одного. Не могли бы вы изменить это, если еще не слишком поздно? Извините, что не подумал об этом в этой песочнице, я заметил это только при серьезном испытании.
xnor

4
@xnor Хм, это вызвало бы большую проблему с механизмом подсчета очков. Затем вы можете сделать произвольно большое и почти невозможное короткое представление и выиграть испытание.
Аднан

3
@Adnan Вы можете решить это, определив показатель = len (секретный код) / min {len (общедоступный код), len (кратчайший код, опубликованный грабителями)}.
Андерс Касеорг

3
@Adnan Контекст является предложением xnor подсчитать количество очков, если грабители побеждают ваш публичный счет, но не совпадают с вашим секретным счетом. Я предлагаю способ заставить это работать, избегая проблем, которые вас беспокоят.
Андерс Касеорг

3
Да, наконец, еще один вызов Кууопса и Рооооббббберса.
insertusername здесь

Ответы:


36

Семя , 5861 байт, оценка = 5012/5861 = 0,85

Последовательность состоит из простых чисел ( A000040 ) со смещением 1. a (1) = 2, a (2) = 3, a (3) = 5 и т. Д.

106 4339425277766562922902283581834741289660008085947971671079664775075736459902652798498038280771739790213868067702391567527146683746696872737118568202495046682058807677834082334206717794057290386357040004038910321326390033894692316122893125849512049817771469697446796247656883761642659391998672259889315862253584980121050081936190889196979721443972131545258528161479083569474217100401074866410321578452749003295370495810488337344650619973376676577461877392643228932028285261311284691649403036725905675576380944186859525020321196255472295415627414823269713084816196540461818684672201926996228242729726187404845487167114556965625764494860789841409004737497250600337038738035289643512265772877903971230007222865264200102217827010958702813633039465646713707971175729900391272165457566364779628858903697222589748797809421482136725017988969980267265196209027326008642464190920825439635011414535065156799655809935871795742526416544853103823906918352472744460644939241345215614650110978624804796257165525598653433482592675123776747497586586903140407616610040250976121531777891358439091358523224019193934111409521776865798864774150127996987606796522094617839125169013781373842026970010007574244564780540958252950607459585834584855526028427463655493110963000525209314274839412714497954647707284352161251044088451086878301225167181712809612927720502228546704347274977503482518386819117870800284276687560241308964641752876311905619184965236937789822712948719170589044519552259399272657757694404103028213338440810122219269214268424256451648966039627998513353115348057963135398345514276156595104642595820063441019481255889600472121104059631555738973905087895006671206400595057069658845297458058584470727379036742268107372233190371861824194831387484478317333784774872796689435056263039565495723444232483369405079512770383639748492508848098080619713255928884946598796741958520788406091704951276729428229224292748702301286318784744573918534142896761450194446126776354892827260482520089107240497527796383449573487121759294618654056309957794765646022274249211113876873102681817500947681708211056388348991201016699342850495527766741633390367735662514559206616070479934780700857859919517187362382258597709910134111383911258731633002354208155277838257255571878219168563173495861133946240923601273185050088148273459064040178741322137494758164795598458780786653602794809987537740537018415433767449108362051063814315399931951925462073202072886716208053889630274798247936580024665863765351912184189125660586187615847325588786048095120241198943086897428919324650596915625795076460123743259068671341944912206659194476673792489442514470540309819938731582497982088632076086088279435186513066668502875362808653657423813387124496122632219269226944975782747969308509448942429277233562654639293567532567668357917753810024961683829653277391094269518376510962710057956994339018307344554672056556222387849272880157861877494719706801624724491116189525394408237355854147113614645956561900837121715298276123085019204014577395795131906357190097536924932784935203378709529040555114884933996346694363879974847691625806412083107877442577777402405491226347699452398189866905599648314105255526411599513768016126067224570735746339691839657336828937030584950250402550603260483421505256395736457980708347396132620971927806636308105501893575073944959824958733880580825249931469481777083600987966500968473202481877213198175820182125298036242272662171321630056435823478710070315022531849275633515412140708923196338877549535352180465031450246889723670908173572778497329815806296369714467774385173078365517895215622645081749679859298824530173433952201710212962315524645807786760255396609101229899503687886977229729747349967302227815724222900649259120496955396616388023947812556426182596252076072286860171961582235043470190275528327438941205680729222092142315348205283459886659277456757338926863444370956987436702675569004062857510888080701482282900718067707825890168959050535970636214821273965900140346587802750221148933877600652180282267212515086387728695565345543441575183083490091817551421389124038251086513387106526847199935776240422217886407416027185332010280169564289345500368555274327733580514983967396271907637608170801013991375555069570288329399237332712790289521766624379537848996471168926519414464863388365890585061582441222989105844636887033599262856636618609644981203616618819656730174147506366895579518927217154437260067784133452192099436160162797896733220282837763342940047719962882720310397266700665603774047807673735452896542215047419894928360985667680051383584281780118001522220147385455276205847620842066894760474814386271419398361771509559702341442734727141312211989794380570433135781896005067541537095546614638001539678780066976441749790924521292297473522803115912791790379839635473194794843511234906415092857115568242448079933264380632375450234146479596225552359821776361923588178896354011117990551249184457345201223244319766597339520899930287542362386381372955844126876031262062731835081542890548095759704856479235361996156162229417953890962902505112862674541020677153054937034038823204321411753183982406667628845943390275194956321260584953509501973880059966268311741789559039618821364775407403947492157311255310143283125490988585303127442698159113924719563571459841025286208880511134222538431747221840824203312684036627017414295981003169360893015436564680773233890198618904647085929678054127680367983802905553144716598061593632352021737488422700265144189474970515439967472618438343180405852959047054139020095303915498443045344690691354304662161461750826840689185141612937350984288238847592910919431788170821390987459951181698659544772214696392241600642992000900364649438402093845534643663733216626212187314397293309505677932731383013397665193960914949915855970134736764497124186701371371881061763702617034928084811708964018610410971938419410791443362686750151572343348438861493025667676713

Программы Befunge-98 были протестированы с этим интерпретатором .

Решение:

62 92671758747582594731336103958852355343308794409787718910287760272065096600068486400261521203099179296478278113800406388237579729434074471528101978922110199511009255327569364221068648720732186414156697930516237153253745234146558781777104311285708042469572129997820696177040412749585193035961972308024909384538547357820271391461203855177879703963391294547499579588457829374981409596253284387318191154655397249791533591896711203680125312645807793061567274893660125978667479654664977040722935418267606762108334976561590548772755653088127344268269983549959628254712562135604114391709222466418283973346968039685907258341712475120187026707300070769277380483828579629391533415119380882514570806683534933872011332303802477012040660361613689139008855327957705058672774790021218679288003003953301651226513713984857174365383390364296326192225244927665294515693697694918935732394438095829822147927645949273829493190176397786165741955566462476231578299385726525505407052332068778469428870102672560545990553686935179657522071350801304923521681690806124866463401094200444841941834667455137491597902735287855498886460945851544063102556545691787612423033525861765804657417395955322217721677429700032333887700477665924915189639029356029794151144702621112140447347270986003871777552705154393697526621456025974679633450745341583481291685834000335168972075093212539251102818038917942913311300883294570091156661153874804268309393591292001433191276766990017144340677002050765359295580546228905861008474333888247511333039470305173620221481374758754343560048199433044290376988914313248904786418615239832295700238599693805552407166251501198275363727855984193340187485162706203747898935844148656997727555488455764358003951396850496841760348138874901474547533715922587211143833052692993182786162665394965914056238514702648647904702501871758140636318131208564891924287008550289224318358936576352473100482724524675417108540029486047223784009872784235439805791496176981701859374772960623187174667015174831665360382067784289660747175586412802848517818731070091826086320292632019033525579172665790335268736167170506003176022610987557889205903933680970434653929602313812168432779881423599218075810156457004870273456214668951969634696002866863369645150677406566613367576078149751561615160777945725724620047443832859087000460506626402089973036918592151204779260519899343451226942874643654023265001514280212345984966126290887141500898797940093805650642580450926977375576911590855135774911449619005627413806680159169643085790457809525639117624947749945044091079624534522626841372604654172723500062361904864176709974716350878399949908529715899937417421315012456868864220900338162700464737416505300734198857624165994112815507157337074226022552948626042899845891195024145834980781844015548398775284084741665926642729256313545870065439195137107807599897817556866239630270351410298105991743248934632486671734759038305157913444368204353943206369388913837519310828223093441519335111533635957953613758894822654736600526811789875376813119426924959017038654104216784121093688306563643326587639486472221258233221666454164763738631579246841130247019172136121041002571694545781948282785399495873501148416357057693713305042834246973535325571882393889489457235864027134943913383832461393499203435931881991959787045205816313165984531168137210464591653390767999403651750434079431253272021002273680565508340556736474927770564408343360602057949991306130979603289667991356237787412616305022971197507815004141825394838946364485315703051195195566893733123391158803413838803831010122718476800229685100410524315094662633390222854924884579083098055980542607258318868514903610787510921796157291630993618714015755412239872758443166948699744841899868754369627081727143351807615097715679652005998467491609044596871312950634152039807480021814406950780706131231897491212637759991818212542181136384052857191779658528790835620632765143337026858373660057972387266312097135260115742458792764792668883627539340807572869610941154184473111399152964165437112713815173281951728792354570851956468302291939952274005357250989986640723863408051924618400882866539701190471828299028566020683682444415198672952980294639217217840535225987439355834087974716313911977302809235338769491339553247328065401203243450045946392960085318343121705830317674151229536850726617093615850507955559652374337057819549481320081981520577039493601331233500403284295119207704095876958023271178964331413629547646937335760969491450824461526563643617594783473684358594189269252499897162333533284912320654686655888508024970105099967896167541978181602786701854274646885561632089896312016789257459673121974866871919820865433343707787147414982407950775979279255414469970743690769124215210050618943726165676550098723299244096267839544684847323547847832349290874282817429866612456451105673214159820212156069771415582214200701894487126822756864305461967035982308878073752362075553218935807632264803200753661147341613284071218919438723527468202903770806766095252957940538229987302177328543423522712562396242285027178395886649344

8
Это займет века, чтобы взломать _____ O
TuxCrafting

4
Правильный язык для Challenge
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
Добро пожаловать в программирование головоломок и Code Golf!
Аднан

2
Просто из любопытства, возможно ли это в 4 байта? Я застрял на этом в течение нескольких часов: с.
Аднан

1
@ Аднан, да, это возможно. Рад слышать, что вы находите это сложным!
Джордж В. Уильямс


@ jimmy23013, да, красиво сделано!
Джордж В. Уильямс

12

Сетчатка , 28 байт, оценка = 0,9286 ... (26/28), взломана feersum

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

Вычисляет A192687 , (смещение = 0).

Попробуйте онлайн! (Первая строка включает набор тестов, разделенных переводом строки.)

В этом разница между мужской и женской последовательностями Хофштадтера . ( Соответствующий вызов PPCG. )

Это был мой оригинальный код:

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

В любом случае, этот ответ был чем-то вроде азартной игры, потому что реальное решение основано на регулярном выражении, которое я объявил самым коротким из известных регулярных выражений Фибоначчи в чате несколько месяцев назад. К счастью, никто, казалось, не помнил этого. :)



11

Hexagony , 91 байт, оценка = 0,725274725 (66/91) [Cracked]

Вычисляет A000045 (последовательность Фибоначчи, смещение 0).

Я не буду слишком удивлен, если кому-то удастся победить это и мою версию с большим количеством гольфа , хотя это должно быть трудно.

Редактировать: Святая корова, @MartinEnder избил меня 33-байтовым решением.

Гольф (91):

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

отформатирован:

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

Попробуйте онлайн!

Я не собираюсь публиковать объяснение этому, это слишком ужасно ...

Гольф (66):

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

отформатирован:

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

Цветное:

Последовательность Фибоначчи

Попробуйте онлайн!

Объяснение:

Макет памяти, который я использовал, выглядит примерно так:

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

Инициализация (черным цветом) устанавливает a = 0 и b = 1. Затем основной цикл:

  • идет от aвходной ячейки -'"
  • уменьшает вход - (
  • добавляет б и а - {{=+
  • перемещает это "из пути" - "+{=*
  • устанавливает a в b - '+
  • перемещает "из пути" - '+}=*
  • перемещает b + a обратно в исходное положение - "=+
  • устанавливает b в b + a - "+
  • перемещает обратно в исходное положение - }+

Как только ячейка ввода достигает 0, MP перемещается к a, печатает и выходит.

Чтобы сохранить больше байтов, я мог бы использовать &, который просто устанавливает текущую ячейку либо в левую, либо в правую сторону. У меня также могло бы быть немного лучшее управление потоком, но все в порядке.


Трещины. Спасибо, что заставили меня написать программу Фибоначчи. Не уверен, почему я не сделал этого раньше. :)
Мартин Эндер

На самом деле я использую &для перемещения входные данные по краям a / b / a + b, чтобы они менялись ролями на следующей итерации. Что касается меня, мне вообще не нужно перемещать a, b и a + b.
Мартин Эндер

@MartinEnder Извините, я написал эту часть, прежде чем посмотреть, что на самом деле сделала ваша программа. Ваше решение намного умнее
Blue

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

Стек Кошки , 14 байт, оценка = 13/14 = 0,929 [ трещина ]

Это 10 байт кода плюс 4 для аргументов -nm.

Вычисляет A017053 . В случае, если OEIS не работает, то a(n) = 7n + 6, начиная с n = 0.

![_-_:-_-_

Полный код (можно использовать без -mаргументов)![_-_:-_-_-_-:_-_]!

Скрытое решение было

!]|{_+:}_


7

Снеговик , 50 байтов, оценка = 0,9 (45/50) [ взломано Линн ]

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

Это подпрограмма, которая принимает число в качестве аргумента и возвращает другое число.

Вычисляет A122649 (смещение = 1).

Попробуйте онлайн!


Что такое соглашение о вызовах для так называемых «подпрограмм»?
feersum



6

Brachylog , 27 байт, оценка = 0,666 ... (18/27), Cracked!

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

Вычисляет A010551 (смещение = 0).

Вы можете попробовать это онлайн здесь .

объяснение

Поскольку подавляющее большинство людей не знают этот язык, и поскольку я публикую этот ответ в основном для того, чтобы люди его изучили (см. Wiki 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) Cracked

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

Вычисляет последовательность Перрина, 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

в то время как мое собственное решение было немного перегружено

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

Чеддер, 7 байт, оценка = 0,8571 (6/7), [взломан]

n->2**n

Довольно просто, только полномочия двух. OEIS A000079

Попробуйте онлайн!


2
У создателей языка есть преимущество ...
Деннис

10
Особенно создатели языка, чьи языки крайне отсутствуют в документации.
Mego


2
@Mego самодокументированный код не считается документами? Обозреватели кода солгали мне! D: <
Downgoat

1
@Downgoat Когда у вас есть ссылка на ваш сайт под названием «Документация», и она ужасно неполная ... Да.
Mego


4

Python 2, 43 байта, оценка = 0,9302 (40/43), трещины

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

Вычисляет A072493

Посмотрим, сможет ли кто-нибудь сыграть в гольф все 3 байта.


Подождите, это действительно хорошо, если Trueиспользуется для представления 1?
Р. Кап


s=1;exec"a=-(-s/3);s+=a;"*input();print aдля 41.
Орл

@ Р.Кап, да, это так. Любое значение, которое является правдивым ( if xtrue), является допустимым возвращением.
Rɪᴋᴇʀ

4

Пайк, 11 байт, оценка = 0,45 (5/11) [взломано]

hZRVoeX*oe+

Рассчитывает OEIS A180255

Попробуй это здесь!


1
Я хотел попробовать это, но документация для языка не очень поучительна. (например Z, недокументировано; язык претендует на то, что он основан на стеке, но после *него в стеке есть только нули, несмотря на то, что он влияет на остальную часть кода; порядок параметров не определен четко)
Score_Under

1
@Score_Что я могу сделать, чтобы улучшить его? - Совершенно рад обсудить в чате о том, что неясно
Blue

Конечно. Я не знаю, как начать чат, но я отредактировал свой вышеупомянутый комментарий с некоторыми примерами - я думал, что смогу получить его до того, как вы его прочитаете;)
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^*

Вычисляет функцию Мёбиуса или 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-байтовая версия работает в другом интерпретаторе? Тот, что на Тио! Кажется, требуется завершающий перевод строки ...
Деннис

@Dennis: он работает на интерпретаторе Ruby без перевода строки. По какой-то причине, интерпретатор на TIO не будет выводить из a, :если он в нижней строке, поэтому я включил завершающий перевод строки в ссылку. Мартин и я обсуждали это в другом из моих ответов на MarioLANG.
Деловая кошка

ОК, просто проверяю Я добавил обертку для Тио! который добавляет новую строку к исходному коду.
Деннис



3

Haskell, 28 байт, оценка = 0,3571 (10/28), трещины

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

A006519 , максимальная мощность 2 деления n, начиная с n=1.

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

Несмотря на то, что вы получаете кражу любого более короткого кода, я считаю, что настоящая головоломка заключается в уменьшении до 10 байтов.



@nimi Поздравляю, ты понял.
xnor


2

Гексагония , 7 байт, оценка = 0,857 (6/7), трещины

Не предназначен, чтобы быть выигрышным представлением, но определенно взломщик мозгов. На самом деле это не так сложно, если подумать: с. Код:

\!?__@(

Или более читаемая версия:

 \ !
? _ _
 @ (

Вычисляет A052246 .

Попробуйте онлайн! ,





2

05AB1E , 7 байт, оценка = 0,571 (4/7), трещины

0s·Ì3c;

Вычисляет: A006331

Попробуйте онлайн

После игры в гольф 5 уникальных версий этой последовательности, прежде чем найти эту публичную версию, я надеюсь, что я не оставил никаких очевидных улучшений, так что, по крайней мере, это будет проблемой для грабителей.



2

М , 9 байт , оценка 0,6667 (6/9) [ взломано ]

r©0+’Ac®Ḅ

Немного обманывают, так как M и Jelly довольно похожи, но разрешены правилами. треск @miles к моему ответу Jelly не работает в M; ему не хватает œċатома.

Это вычисляет последовательность A119259 . Попробуйте онлайн!



Я начал надеяться, что этот выживет ... Молодец.
Деннис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.