Ти можеш перевершити мене? (Секція копів)


84

Секція копів

Розділ про грабіжники можна знайти тут .

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


Виклик

Ваше завдання полягає в тому, щоб написати дві різні програми ( повні програми / функції / тощо ) на тій самій мові та тій же версії (наприклад, Python 3.5 ≠ Python 3.4, так що це не дозволено), і коли вони задані n (використовуючи аргументи STDIN / функції / і т. д. ), обчисліть 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.

Більше інформації можна знайти тут .


Оцінка балів

Оцінка, яку ви отримаєте за свою заявку, дорівнює наступній формулі:

Score = Довжина (у байтах) секретного коду ÷ Довжина (у байтах) загальнодоступного коду

Наведений вище приклад має оцінку 15 ÷ 16 = 0,9375.

Виграє подання з найменшим балом. Тільки представники, які опублікували своє рішення, матимуть право на перемогу.


Правила

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

Таблиця лідерів

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

Примітка

Це завдання закінчено. Остаточний переможець - feersum з його насінньою відповіддю . Вітаємо! :).

Ви все ще можете подавати нових копів, але пам’ятайте, що вони більше не змагаються.


2
@Andan Це здається прикрою. Скажімо, я пишу гольф з кількома хитрими хитрощами, які вдосконалюються за очевидною формулою. Якщо я розміщую очевидну формулу, кожен може знайти одне поліпшення та виграти. Або я маю нахилити руку і віддати всі вдосконалення, окрім одного. Чи могли б ви змінити це, якщо це не пізно? Вибачте за те, що не думав про це в цій пісочниці, я помітив лише при серйозній спробі виклику.
xnor

4
@xnor Хм, це може спричинити велику проблему з механізмом підрахунку. Тоді ви можете зробити довільно велике подання і майже неможливе коротке, і виграти виклик.
Аднан

3
@Adnan Ви можете це вирішити, визначивши score = len (секретний код) / min {len (відкритий код), len (найкоротший код, розміщений грабіжниками)}.
Anders Kaseorg

3
@Adnan Контекст - це пропозиція xnor підрахувати рахунок, якщо грабіжники побили ваш загальнодоступний бал, але не відповідають вашому таємному балу. Я пропоную спосіб зробити цю роботу, уникаючи проблеми, яка вас хвилює.
Anders Kaseorg

3
Так, нарешті черговий виклик Cooooops та Rooooobbbbers.
insertusernamehere

Відповіді:


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

4
Правильна мова для виклику
DLosc

26

Желе , 5 байт , оцінка 0,8 (4/5) [ тріщини! ]

R²Sƽ

Обчислює A127721 .

Спробуйте в Інтернеті!


Ось рішення:

RÆḊḞ
  • неявно приймати вклад n
  • R: список від [1, 2, ..., n]
  • ÆḊ: У нашому випадку це фактично поверне квадратний корінь суми квадратів (що може бути корисно в майбутньому гольфінгу)!
  • : підлоговий результат.

Документація для ÆḊчитання:

ÆḊ: Детермінантний, розширений на неквадратичні матриці.

Ключ поширюється на неквадратичні матриці . "Детермінант" не квадратної матриці зазвичай не визначений, але одне розумне визначення є sqrt(det(A A^T))(яке для квадратної матриці зводиться до |det(A)|). У нашому випадку A A^Tце матриця 1 х 1, що містить суму квадратів. Квадратний корінь, що визначає це, дає нам саме те, що нам потрібно відголити останній байт!


4
Ласкаво просимо до головоломки програмування та коду для гольфу!
Аднан

2
Лише з цікавості, чи це насправді можливо в 4 байти? Я затримався на цьому годинами: с.
Аднан

1
@Adnan, так, це можливо. Радий почути, що вам це складно!
Джордж В. Вільямс


@ jimmy23013, так, чудово зроблено!
Джордж В. Вільямс

12

Сітківка , 28 байт, оцінка = 0,9286 ... (26/28), розламана феерсумом

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

Обчислює A192687 , (зміщення = 0).

Спробуйте в Інтернеті! (Перший рядок включає тестовий набір, відокремлений виведенням ліній.)

Це різниця між чоловічими та жіночими послідовностями Хофстадтера . ( Відповідне завдання PPCG. )

Це був мій оригінальний код:

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

Ця відповідь так чи інакше була азартною, оскільки власне рішення ґрунтується на регулярному вираженні, який я оголосив найкоротшим відомим регулярним тестуванням фібоначків у чаті кілька місяців тому. На щастя, схоже, ніхто цього не пам’ятав. :)



11

Шестикутник , 91 байт, оцінка = 0,725274725 (66/91) [ Крікнутий ]

Обчислює A000045 (послідовність Фібоначчі, зсув 0).

Я не буду надто здивований, якщо комусь вдасться перемогти цю і мою більш гольф-версію , хоча це має бути важким.

Редагувати: Свята корова, @MartinEnder збив мене 33-байтним розчином.

Гольф (91):

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

Відформатовано:

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

Спробуйте в Інтернеті!

Я не збираюся публікувати пояснення цьому, це занадто жахливо ...

Гольф (66):

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

Відформатовано:

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

Кольорові:

Fibonacci sequence

Спробуйте в Інтернеті!

Пояснення:

Макет пам'яті, який я використав, виглядає приблизно так:

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

Ініціалізація (чорним кольором) задає a = 0 і b = 1. Потім, основна петля:

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

Як тільки вхідна комірка досягає 0, MP переходить на a, друкує та виходить.

Те, що я міг би зробити, щоб зберегти більше байтів, - це використовувати &, який просто встановлює поточну комірку або на її лівий, або на правий сусід. Я також міг би мати трохи кращий контроль потоку, але це нормально, як є.


Тріснув. Дякуємо, що змусили мене написати програму Фібоначчі. Не впевнений, чому я цього не робив раніше. :)
Мартін Ендер

Насправді, для чого я використовую, &- це перемістити вхід по краях a / b / a + b, щоб вони змінили свої ролі на наступну ітерацію. Таким чином, мені взагалі не потрібно рухати a, b і + b.
Мартін Ендер

@MartinEnder Вибачте, я написав цю частину, перш ніж подивитися, що насправді зробила ваша програма. Ваше рішення набагато розумніше
Блакитний

10

М , 10 байт , оцінка 0,6 (6/10) [ тріщин ]

R‘ạḤc’*@RP

Настирливий чад із М та Желі досить схожий, але дозволений правилами. Ця версія заснована на тріщині @ 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

Брахілог , 27 байт, оцінка = 0,666 ... (18/27), Потріскано!

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

Обчислює A010551 (зміщення = 0).

Ви можете спробувати онлайн тут .

Пояснення

Оскільки переважна більшість людей не знає цієї мови, і оскільки я публікую цю відповідь здебільшого для того, щоб люди переглянули її (Див.: Брахілог Вікі ), я надам коротке пояснення коду вище:

+           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);}

Обчислює послідовність Perrin, A001608

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

Перша спроба гольфу на коді, сміливо вказуйте на будь-які помилки.

Пояснення після розтріскування:

миль скоротили перші три значення (0,1,2) -> (3,0,2) до

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

тоді як моє власне рішення було дещо перероблене

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: <
Пуховик

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

@ R.Kap так, так і є. Будь-яке значення, що є правдою ( if xє правдою), є дійсним поверненням.
Rɪᴋᴇʀ

4

Пайк, 11 байт, оцінка = 0,45 (5/11) [тріщини]

hZRVoeX*oe+

Розраховує OEIS A180255

Спробуйте тут!


1
Я хотів зайнятися цим, але документація на мову не дуже просвічує. (наприклад Z, недокументований; мова стверджує, що заснована на стеці, але після того *, як у стеку є лише нулі, незважаючи на це, що це впливає на решту коду; порядок параметрів чітко не вказаний)
Score_Under

1
@Score_У відповідь, що я можу зробити, щоб покращити його? - Ідеально радий обговорити в чаті про те, що незрозуміло
Синій

Звичайно. Я не знаю, як розпочати чат, але я відредагував свій вище коментар із деякими прикладами - я думав, що зможу запустити його, перш ніж прочитати його;)
Score_Under






3

Sesos , 14 байт, оцінка = 0,8571 (12/14) ( тріщини )

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

Обчислює A000290 .

Спробуйте в Інтернеті!

Підказки

Цей двійковий файл був сформований таким асемблером:

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


3

MATL , 11 байт, оцінка = 0,8181 (9/11), тріщини

YftdA-1bn^*

Обчислює функцію Мебіуса або 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^
Луїс Мендо


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 не виводить з а, :якщо він знаходиться в нижній рядку, саме тому я включив у посилання новий прорив. Ми з Мартіном обговорювали це в іншій моїй відповіді 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 Congrats, ви його отримали.
xnor


2

Шестикутник , 7 байт, оцінка = 0,857 (6/7), тріщини

Не призначений для виграшного подання, але, безумовно, зловмисник мозку. Насправді це не так складно, якщо подумати над цим: p. Код:

\!?__@(

Або більш читана версія:

 \ !
? _ _
 @ (

Обчислює A052246 .

Спробуйте в Інтернеті! .





2

05AB1E , 7 байт, оцінка = 0,571 (4/7), тріснути

0s·Ì3c;

Обчислення : A006331

Спробуйте в Інтернеті

Після гри в гольф 5 унікальних версій цієї послідовності перед тим, як знайти цю публічну версію, я сподіваюся, що я не залишив очевидних покращень там, так що це, принаймні, стане проблемою для грабіжників.



2

М , 9 байт , оцінка 0,6667 (6/9) [ тріщин ]

r©0+’Ac®Ḅ

Настирливий чад із М та Желі досить схожий, але дозволений правилами. тріщина @miles до моєї відповіді Jelly не працює в M; їй бракує œċатома.

При цьому обчислюється послідовність A119259 . Спробуйте в Інтернеті!



Я почав сподіватися, що цей виживе ... Молодці.
Денніс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.