Обмежений міні-виклик нитка Cop


33

Розбійнича нитка

Ваше завдання як поліцейських - вибрати три речі:

  • Мова програмування

  • Послідовність OEIS

  • Набір байтів

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

Відповіді будуть набрані кількістю байтів у наборі байтів, при цьому більша кількість балів буде хорошою. Зламані відповіді мають автоматичну оцінку 0. Якщо відповідь не буде розроблена через тиждень, ви можете розкрити передбачувану програму і позначити свою відповідь "безпечною".

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

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

Ось сценарій Python, який перевіряє, чи відповідає ваш код заданому байтовому набору.


1
Чим нижчий бал краще? Або вище? Тож по суті ми намагаємось знайти обмежений набір символів, який ускладнить комусь іншому скласти програму на обраній мові, після того, як ми вже розробили рішення?
BradC

1
Чи потрібно використовувати всі байти в нашому наборі? Я б здогадався, що так, але це, мабуть, повинно бути вказано у виклику.
Shaggy

1
@Shaggy взагалі ні, ви можете включити інших для червоних оселедців, але грабіжники можуть використовувати все
Стівен

1
Чи можуть грабіжники використовувати один і той же байт двічі або більше?
Містер Xcoder

2
@Azulflame B-файли - це файли, які пов'язані з кожною послідовністю, до якої можна отримати доступ, замінивши на Aa bта додавши .txt. Наприклад, oeis.org/b4.txt отримає доступ до b-файлів для цієї послідовності.
Пшеничний майстер

Відповіді:


11

Haskell , A209229 , ( тріщини )

11 символів (включаючи новий рядок):

s<=[ ]
how!

Виводить True / False як функцію індикатора для потужностей 2:

1 => True
2 => True
3 => False
4 => True
5 => False
6 => False
7 => False
8 => True
9 => False
...

Вхідні дані - цілі числа.


Чи 0 дає помилковий?
H.PWiz

@ H.PWiz Мій код не працює 0, твій тріщин може робити все, що завгодно.
xnor

Тріснув! Дуже розумна ~
Лінн

@Lynn Чудово зроблено!
xnor

5

Python 2 , A000045 ( тріщини )

ml:= input(as,forge)

він містить пробіл та новий рядок.
Спробуйте його онлайн!
Задумане рішення


1
+1 Я здивований , це не використовувати +взагалі
г Xcoder

2
Поздравляю 10k btw :)
Аднан


@ Mr.Xcoder Не знаю, що пітон так добре, але він би plusпрацював?
JAD

@JarkoDubbeldam Ні, sumб
г -

5

Haskell, A000045 ( тріщин )

Я вирішив, я думаю, що мені подобається tбільше s.

Тож давайте замість цього використаємо ці 30 байт (включаючи новий рядок):

abcdeFgh|jklmnopqrtTuvwxyz
=()

Зверніть увагу, що цього вимагає загальний опис виклику

Відповіді повинні бути здатні обчислювати кожен термін у b-файлах послідовності [...].

У цьому випадку b-файл виходить до 2000-го числа, що набагато перевищує те, що можна обчислити за допомогою Int.





4

Haskell, A000045 ( тріщини )

Всім подобаються цифри Фібоначчі, мені подобається Haskell ...

Я ретельно вибрав для вас 30 байт: малі літери, за винятком f, iі t, ви отримаєте великі літери Fі, Tі символ труби |, і три символи =(), і новий рядок. Ось вони знову:

abcdeFgh|jklmnopqrsTuvwxyz
=()



4

Haskell, A009056 ( тріщин )

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

Послідовність - Numbers> = 3, і набір складається з цих 30 байтів:

{[abcdefghijklmnopqr uvwxyz]}.

Тріщина має деякі приємні прийоми. Я тільки думав про це:

head . flip drop [ floor pi .. ]



3

C (C99), A000005 , 25 байт #, тріщини!

Це байти для повної проблеми, приймає n як аргумент командного рядка і виводить відповідь на stdout.

<=>,;!"()*%+acdfhimnoprt 

ОК, мені було цікаво лол. як аргумент командного рядка?
Conor O'Brien

Так, я зроблю це зрозуміліше
dj0wns

1
Тріснув! це було весело: D
Conor O'Brien

3

Одинарний , A002275 , 1 байт

Набір байтів:

0

Мені довелося хоча б спробувати: 3

(Я не думаю, що це буде особливо важко, оскільки кожна команда мовою доступна)


1
Чому б не включити всі байти, щоб досягти максимальної оцінки? Ви набрали найменшу можливу суму, коли не буде важливо включати всі байти.
Пшеничний майстер

Я думав, що ми підемо за низький бал (вибачте, я тут новий).
sonar235


@muddyfish Чи дозволено вводити персонаж як мозковий ебать?
sonar235

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



3

Шестикутник , A057077 , 77 байт

Періодична послідовність 1, 1, -1, -1. Як список:

a(0) = 1
a(1) = 1
a(2) = -1
a(3) = -1
a(4) = 1
a(5) = 1
a(6) = -1
   ...

Набір символів (відредагований), який включає новий рядок та пробіл:

!% & (), 0123456789;? @ ABCDEFGHIJKLMOPQRSTUVWXYZ ^ abcdefghijklmnopqrstuvwxyz [] #. 

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


Будь-яка причина ви змінили набір символів?
Поп

1
@ Poke, мабуть, чим вище число байтів, тим краще, тому я просто додав купу непотрібних команд.
Аднан

3

Haskell, A000045 ( тріщин )

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


Прошу вибачення за те, що ви провели в неправильних напрямках, подавши а g. Зробимо те ж саме без!

Ось 29 байтів, що залишилися (включаючи новий рядок):

abcdeFh|jklmnopqrtTuvwxyz
=()

Знову ж таки, пам’ятайте, що Intдля обчислення 2000-го числа Фібоначчі буде недостатньо, тому що воно знаходиться в b-файлі.



3

Haskell, A000045 ( тріщин )

Це kindof (як було оголошено) не нова версія, але зовсім інша версія. (Так?)

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

На цей раз вам буде запропоновано реалізувати послідовність Фібоначчі , використовуючи набір символів розміром 17, який (наскільки я знаю) містить тільки один два непотрібних символів:

eilnt=(,).[ ]_:0!

Зауважте, що немає нового рядка (але сміливо показуйте версію, яка має їх для читабельності) і пам’ятайте, що ви повинні мати можливість обчислити 2000-е число Фібоначчі.



3

Cubix, A000027 (SAFE) 17 балів

!&')-/0;@Oiru.NSQ

Моє рішення:

!O!;i)!/u&!!r-)0'u;;!@

дивіться його онлайн тут

Спочатку я це робив без, .NSQале я вважав, що можу їх додати безпечно.

Пояснення:

Ця послідовність є просто "Позитивними цілими числами". Тим не менш, у Cubix є три команди введення i, які читаються в одну таблицю (натискання, -1якщо вхід порожній), Aяка читається в решті вводу як символи (натискання a -1на bettom стека), і I, яка читає наступне число від входу (натискання, 0якщо немає відповідності). Тож природно, я лише надав те, iщо читається в цифрах як їх значення ascii. Ой-ой. Крім того, -1звичайний маркер для кінця введення, в поєднанні з ?таким чином я позбувся ?, змушує мене використовувати !(пропустити наступну інструкцію, якщо TOS не дорівнює нулю) для управління потоком. Нарешті, я подумав, що потрібно &поєднати цифри для друкуO (який видає верхню частину стека як число), але зараз я розумію, що це теж було не потрібно!

Інша частина завдання спочатку полягала в тому, щоб не мати .неоперативного характеру, але ви можете використовувати пари !замість цього, якщо ви обережні:

    ! O
    ! ;
i ) ! / u & ! !
r - ) 0 ' u ; ;
    ! @
    . .

i) : введення читання, приріст.

!/ : якщо вершина стека дорівнює нулю (кінець введення), поверніть ліворуч

зліва:: ;O.@поп верхньої частини стека, вихід у вигляді числа, зупинка.

інакше:

u'0: натисніть char код 0на верхню частину стека

)-r: збільшення, віднімання та обертання

;; : поп-вершина стека двічі

u& : з'єднати цифри

!!: чистий нульовий ефект, зараз ми i)знову.


У Cubix є декілька символів, що так? Чому б вам не додати їх, щоб збільшити бал? Або є частиною виклику, що немає жодної петлі.
Пшеничний майстер

@WheatWizard Я вирішив бути милосердним і додати, .але можна обійтися і без цього.
Джузеппе

3

Насіння , A005408 (непарні номери) - безпечний

Ось трохи складніше. Ви можете використовувати будь-які символи, дійсні в насінні:

[0-9 ]

Ви не повинні мати можливість жорстокої сили за тиждень, якщо у вас немає монстра комп'ютера. Удачі! Це важко.

Підказка

Це програма Befunge-98, яка використовується в моєму рішенні: 9&2*1-.@( 9можна видалити, але моє рішення просто трапляється)

Рішення

8 47142938850356537668025719950342285215695875470457212766920093958965599014291682211474803930206233718243166021324700185443274842742744297183042397910454208210130742260519105651032450664856693714718759816232968955289663444878636053035645231246428917992493766505872029989544065894418166685284738859999912471659057565000392419689361271972485444731284404987238803115210428572945108908191097214978382112218242627719651728712577306652405452922782307249485947045215982784790396555726144526602778473387279897334709142853151393812930171163300904436548870603006549005515709074682843356844201220668045057407146751793470423217099467145255174198241606814578351260769359571053755888106818197239116973006365593563235361647743411341624822052103816968153274122434280200888824954875622811325064255818154979564925710534165572852442761249176778416688044630942040966271963723430245979221181930857841829694362184653939393940015797332978459794253176110314873994228261888801228999293570329618551223457182420746927212801550646743152754821640064626761542582557138452651970009253770914346130172884305622027370793496993281847017017643506435562229916984107083951938286577012273222191422054315198157936674247934699496471202544270325061352014830137178245082445717253260177560449757186762445707057028987371278573629077370632470496186218574320801798046510846708620502139560277546345198686675095078255875594169064796673074708822106659920187882062247609587560174781170641367430722951002242213604709887062481149928551745163110045572994991844223216663621203042075294195007458339984527333125093390189721042315604498435269143549420166732177200370228527273606218617171975362431824163269672003982537382982066136613799403024924018145511099557720492305303748099327810811511080314262364010281851651151072957475365629128068033597559560186625877942054704386175359499573139930378099420149452745731809033737756051947913924265484582800618244473333957173960222243311738522875022546610298627492222587971756897328087719407454153248557203886421828643453889090192355970705084245312184441674098515659253482621260617211786550204852895652236768886852209506535523414991099331857674826373947830587028494510697603296607361093480842935154672353288419699354739650168309017848485131553416956405911683526896232046773861961911767319373432460217755874481607587604361758089936007730253450733375831228127106295259261723611771334468553746160739548375950046831923765023329346333968732796413192682936767133122325481273354810124729664400173367781325488656859581438769940474229394692089519981810909719628263357284973442177568041416363386891516725592952892168077523560584005586276794967492051823290615767599202657060820223928678900774601616908031321346819422162123048834532926372862962159255934240435694566497798544870186550219886342379298214007368081326725550763589917206162393892085506551547475259270513853987294911388226039365971184089828739349642347312302559286882065147953715607221387657413593069535573044067517274676745306396611760657091792151803798859781616126637075577936361782593546481811651450365118155866449850474140044293772144065341051900055416408240857348697564252386403719942197789892382627153382011984996644288495699209129097948405810551134169739499539470610790009272281731894550593600643079188663110695127017324336488487580799309995227054576681630676222848231145106058050452439356753552872060820230589152143268436210090733908507724084889788244157692417246691477400856716677564609725979550100138132944851304473466485128295568194188600539248624248078558656162635444219199062786468487219220160009464328883337821175254405764395407405891483810757405446047244460754827113527540703326714751461178900155717130399854358953609995319006890674085682111514072508440632941090209366005504352890092326935445829213294943731517698438648298921337375443947066950275955144209037675013663600062205168551851984361951824731229113379464426979717688372371011461890139087487634586087688796134318950140718824105959727161482389914414206768064990410615468858520426399188835467970981786227122743162945627167772066100574532803061925537235491026486409948728571706557098859331941260622260924660292578136091523126589085799981416326395824628987154802653126685882440760385315869346960183809644486238810912663304360284449610976505715001267334297285036791711464142665122000857666018757370925847113798258537503747803972255591351740843663253694303946089997282812556281486820325652814785261116697261899511762129550421005941055852897451832731304151488058522478260009347144486599715629242208891126238083949281490804191584238425634093683587199278186505945727829025071885767559828670803412582690901456978557379916793144695491189633486065077294485660840922713748873840986104486221528464294334436081663106336911265802650605150347413103936140565054608396116572669757269475369570465915381045895991937087068526458273755454602799814909213983801968791431574508976448235055061998715636460946550584682626461010298101802277643570201189324102499951196290880892383380284543173390448406975616650185808619832614403133944687275834716343817926764699295672501869876060896683204343897481630037607159476461359111190545646447421653872016775582115425356868533678655969328210255235050133718364831289991244684695035034122861927276046255405376531096051541299607470934463981741370397268760811035606321455156217990078359217247117349544774085111287345436916077577032709684005131011429476229617901273007027774182864475737502587896225475248267937497254066190335088823904767397814233350286976811901982274477445433872253983823904938249655089770642137858608313524715533520654523880832056453080193644871440738737277389718589793074725139142291918837706550037934799585495183374639955887618135803388399608755212147742199481865453122900714456703147150994585431640652462593333773031385396586933380738103697887063571042512186708015948688088011290197524699274772775288900864690592106393483764109837848793374117655194139018455509931621247697015323332300969105814058088442693320033876473960017819576425062784644138417943454576404265382986995583045527928832

Як ти це створив?
Крістофер

@ 2EZ4RTZ Болісно і з джерелом Python як орієнтир. Це, ймовірно, може бути багато в гольф, хоча.
TehPers



2

cQuents , A000027 , Cracked


 !"#%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

Це вірно! Ви отримуєте всі ASCII! Зачекайте ... немає $... що $знову в cQuents? О так, так, вбудований індекс. Що ж, жорстка удача: /

Задумане рішення:

#|A:A

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



@Adnan yup це працює, я думаю, я не повинен був відкрити це так сильно, як я: PI не міг придумати будь-яких різних способів зробити це, хороша робота. Додано призначене рішення.
Стівен


2

Ruby , A000004 , 5 байт, тріщинами

Просто возитися, щоб почати. Це має бути легко для всіх, хто знайомий з Рубі. Це низький бал, але що б там не було.

/np.$

Потрісканий, ненавмисний подвиг

Зламаний (відповідь призначена за допомогою nпрапора)



@Adnan Eh, я прийму це. Якщо вам потрібен nпрапор (це є причиною, що це в послідовності байтів, і було б $.рівним 1)
Значення чорнила


2

Python 3, A007504 ( тріщини )

Цей байт, включаючи новий рядок:

bfuwo)nm1h[=(t+;0a
sig%pr, le:]

Мій код не забезпечує нескінченний вихід, але може обчислити весь b-список.


1
Ласкаво просимо до PPCG!
Zacharý


1
Лом, який я використав .:(
Джонатан Аллан

1
Я виправив тріщину.
Джонатан Аллан

1
... і переїхав на Python 3.
Джонатан Аллан

2

R, A000290 , ( тріщини )

Набір байтів:

()%cfinotu

ні c, але все інше для function? Це жахливо. Я знаю, як це зробити, за винятком читання на вході ...
Джузеппе

@Giuseppe вигукує, слід aбуло a c. вибачте.
JAD

1
Це я отримую за те, що роблю це лайно вручну ...
JAD

Не хвилюйтесь; це досить жорстко!
Джузеппе



2

cQuents , A000217 , тріщини

Байт:

$:=1;
\-

Зауважте, що для цього використовується функція, на яку я ще не підштовхував документацію, тому я надішлю це сьогодні, якщо ви зачекаєте до цього часу. (Або ви можете пропустити мій вихідний код ... весело). Документація підштовхнута. Було б менше байт, якби нещодавній виправлення помилок було в TIO.

Задумане рішення:

=1-1:--\1$ ;$

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



2

JavaScript (ES6), 13 10 байт, A000045 , тріщини

Це повинно бути легко.

Це послідовність Фібоначчі: F (n) = F (n-1) + F (n-2) з F (0) = 0 і F (1) = 1.

Набір байтів:

$()-:<=>?[]_~

Редагувати:

Це навіть можна зробити за допомогою наступних 10 байт:

$()-:=>?_~


1
Це не [код-гольф]: "Відповіді будуть набрані кількістю байтів у наборі байтів, оцінка буде хорошою". Більше байтів - краще.
LarsW

@LarsW, з іншого боку, більше байтів також полегшує злом :)
JAD




2

R, A105311 , ( тріщини )

'%(),:=acdeginpstx

Спробуємо це без того lчи o.

Оскільки це було зламано, призначене рішення:

cat(diag(diag((a=scan()))%x%diag((a==a):a)),sep=''). diag- цікава функція, яку можна використовувати трьома різними способами. Подаючи одне ціле число ( diag(n)), він створює матрицю NxN з 1 по діагоналі. Подаючи вектор ( diag(1:n)), він створює матрицю NxN з вектором по діагоналі. Подаючи матрицю ( diag(diag(n))), вона повертає діагональ як вектор. %x%обчислили добуток Кронекера з двох матриць, де кожен елемент у матриці 1 множиться з кожним елементом у матриці 2 окремо. Виконуючи це за допомогою nматриці ідентичності довжини та 1:nдіагональної матриці, створюється n^2діагональна матриця довжини з 1:nповторними nразів. diagвитяги, які знову, і catвідбитки.


1
це буде ще веселіше :)
Джузеппе

чи включає це новий рядок?
Джузеппе

@Giuseppe Немає нових рядків
JAD

1
@Giuseppe, і я лише двічі перевірив, цей байт є правильним
JAD

[тріснув! ] ( codegolf.stackexchange.com/a/136457/67312 ) - я (неправильно) використовувався %o%до того, як я зрозумів, що %x%існує. Я припускаю , що я міг би зробити 'i'=='i'для 1але так чи інакше працює, так.
Джузеппе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.