Поліглот анаграм нитки копів


44

Цей виклик має дві нитки. Це нитка копів. Нитка грабіжників знаходиться тут .

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

Програми повинні виводити десяткове число з подальшим необов'язковим пробілом до STDOUT. Програми можуть виводити на STDERR, однак це слід ігнорувати, і якщо прихований випадок робить це, слід чітко вказати, що це так.

За бажанням ви також можете вивести код символу. Однак якщо ви це робите в своєму прихованому рішенні, ви повинні вказати таке в тілі подання.

Потім ви представите номер OEIS, вихідний код та назву однієї мови, на якій він знаходиться.

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

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

Оцінка балів

Це тому найкоротша програма, що не розбивається, є переможцем.

Мови

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

тобто, якщо є два рішення 1 і 2, які є в мові A і B відповідно, рішення 2 не повинні давати правильний висновок мовою A, а рішення 1 не повинен давати правильний висновок мовою B.

Безпека

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


4
Щоб переглянути ідеальні послідовності OEIS для ідей, перейдіть на oeis.org/webcam
mbomb007

Як би це працювало з мовами, які люблять використовувати прапорці для перекладача, наприклад, perl? Вони дискваліфіковані? Чи враховуються прапори як частина коду? Чи прапори "безкоштовні" (не включені до коду чи розголошуються взагалі)?
Емінья

Чи може прихована програма вийти з помилкою (після отримання результату)? Чи слід це вказувати у відповіді?
Луїс Мендо

1
Не впевнений, чи це буде корисно для кого-небудь іншого, але це висвітлює будь-які залишені символи або повторювані: codepen.io/anon/pen/BQjxRK
Dom Hastings

1
Було б непогано, якби був фрагмент стека, щоб показати неперероблені відповіді, найперші найстарші
mbomb007

Відповіді:


15

Python 2, 118 байт, A042545 Cracked

i=input();s=1/(801**.5-28);a=[0,1]
for p in range(i):a+=[a[-2]+a[-1]*int(s)];s=1/(s-int(s))
print a[i]#,,,.//000fhlmo|

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

Примітка: Через помилки точності з плаваючою комою це точно лише до входу 14. Передбачуване рішення є таким же способом.

Задумане рішення, JavaScript (ES7)

for(i=prompt(),s=1/(801**.5-28),a=[1,0];i--;s=1/(s-n))
  n=s|0,a.unshift(a[1]+a[0]*n);
alert(a[0])  //#+2:[]giiiiinnpt

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


2
Я не можу змусити справу A042545 (15) працювати. OEIS каже, що це 53000053, але ваша програма говорить, що це 27666361 (принаймні, на моїй машині).
бобокак

@boboquack Вихід для 16насправді - 53000053, але після цього, схоже, немає відповідних умов. Цікаво, чому ...
ETHproductions

Може, помилка з плаваючою комою стає прогресивно гіршою?
бобокак


1
Чорт, я мав рацію! :( Це було так близько, як я набрав: gist.github.com/dom111/bd9be933cb8ccd0e303601bf73d525b6 Спасибі за тренування в будь-якому випадку, мені потрібно було, |()але я просто не міг їх отримати!
Дом Гастінгс

10

Brain-Flak, 24 байти, A000290 , Safe

Ще одне квадратне рішення. На цей раз немає нічого, крім дужок

({(({}[()])()){}[()]}{})

Задумане рішення було в Brain-Flueue , версії мозкового фляка , яка використовує черги замість стеків. Програма:

({(({})[()]){}}{})[()()]

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


Це працюватиме в Glypho, якщо введення / виведення з використанням символьного коду дозволено ...
jimmy23013

@ jimmy23013 що таке Glypho?
Пшеничний майстер

6
esolangs.org/wiki/Glypho ((([{}{}{]]}[)))((){))(}
jimmy23013

@WheatWizard Якщо він зламався, ви можете відредагувати відповідь, щоб показати це?
mbomb007

@ mbomb007 Це не трісне
Пшеничний майстер


7

CJam , 7 байт, A005843 тріщин !

ri2*e#^

Це основна 2*nпослідовність.

Пояснення:

r          e# read input
 i         e# convert to integer
  2*       e# multiply it by 2
    e#^    e# this is a comment that is ignored by the interpreter

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


Оригінальне рішення, морква

#^i*2er

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

Пояснення:

#^            This pushes the input to the stack (anything before the ^ is the stack)
  i           Convert stack to integer
   *2         Multiply it by 2
     er       These are ignored because they are not Carrot commands
              Implicit output

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


1
ri#e^*2працював би в Jelly, якби *примноження замість експоненції. Так близько ...
ETHproductions


У мене було все, окрім rпіта. Захоплююче побачити оригінальний код для цього.
Емінья

1
@Emigna Я додав оригінальний код
Kritixi Lithos

6

2 придатних , 15 байт, A000290 , тріщин !

Перестрибуючи в той же n 2 поїзд: с.

*?"!#$&<=@\^{|}

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


2
Майже схожий на Мальбодж із символами в порядку: P
ETHproductions


1
@ ConorO'Brien Hahaha, я був впевнений, що це неможливо в Jelly, Pyth, 05AB1E та MATL. Хороша робота! :)
Аднан

5

Brain-Flak, 44 байт, A000290 Cracked

<({({})({}[()])}{}))()()()turpentine/"*"*4splint>

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


Оригінальне рішення, Python 2

print(input()**(len(set("{}{}{}[]()<>"))/4))


Зараз мені дуже цікаво. Яким було ваше оригінальне рішення? Я можу сказати, що це python, тому що я бачу len set inputі print(і тому, що я знаю, що вам подобається python), але я не можу зрозуміти, як це квадрат у число
DJMcMayhem

@DrMcMoylex додано
Пшеничний майстер


5

Python 2, 25 байт, A000583 , тріснутий

Y=input("");print`Y**4`,X

Ця програма виходить із помилкою після друку виводу.


Мій прихований код (істотно відрізняється від зламаного рішення!):

Власне , 25 байт

4,n`*`Y")ii(*nppruttY;="X

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

Пояснення:

4,n`*`Y")ii(*nppruttY;="X
4,n                        input, repeat 4 times
   `*`Y                    do * until the stack stops changing (fixed-point combinator)
       ")ii(*nppruttY;="X  push this string and immediately pop and discard it


5

Python, 118 байт, A042545 , Safe

i=int(input());s=pow(801.0,0.5);a=[0|0,1]
for Moshprtflmah in range(i):s=1./(s%1);a+=[a[-2]+a[-1]*int(s)];
print(a[i])

Цього разу він працює як у 2, так і в 3. І коментарів немає! Що ти робитимеш?

Примітка: Як і у старому рішенні, воно втрачає точність після перших 15 доданків через арифметичні помилки з плаваючою комою.

Задумане рішення, JavaScript (ES6)

giiiiinnnnprt:
i=prompt([n=+2]);s=Math.pow(801,.5);for(a=[1,0];i--;a.unshift(a[1]+a[0]*(s|0)))s=1/(s%1)
alert(a[0])   

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


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

@WheatWizard Дякую, я додав призначене рішення.
ETHproductions

5

Python 2, 124 байти, A144945 , [Safe]

Крекінг цього заробив би вам 500 прибутків! Запізно!

Кількість способів розмістити 2 королеви на n X n шаховій дошці, щоб вони атакували один одного.

Сподіваюся, це не надто просто. Я влаштував свій код, щоб пробіл був добре видно. Це лише пробіли та нові рядки.

Примітка: передбачуване рішення виводиться за допомогою символьного коду

n=input();print((3+2)*n*n+~0*6*n+1)*n/3;            +6;



























+7+7+7+7+7+7+7+7+7;+++++++++++++++9+9*9*9

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

Задумане рішення, Навушники :

r2=ni***p**
(


p((0 ;3+++3;+;/


)





i+++nn
 +)7
n

n+++ 


17+~
 +)7;97++++7


69+9n+ ++7+n 69
 +7+ ++7


**7+++tut

Це еквівалентно наступній програмі BF:

>>,[->>>+>>>+>>>+++++<<<<<<<<<]>>>->>>>>>-<<<[[>+<-]>[>>[<<<+>>+>-]<[>+<-]<-]<<<<]>>+++>[-<-[<+<<]<[+[->+<]<+<<]>>>>>]<<<.,.

4

Fuzzy Octo Guacamole, 26 байт, A070627 [Безпечний]

49++*5^pm#]%:"?:.=:#,|"1:@

Тестові приклади:

1 -> 1
3 -> 23
5 -> 1

Рішення:

^::::|*?1=#@]","%.#49++5pm

Працює в Magistack.


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

Класно, я зроблю це та інше раз, коли повернусь додому.
Rɪᴋᴇʀ

3

Піт, 75 байт, A004526 Зламаний , молоко

Більш грайливий тест, ніж усе, але:

/Q/////////////////****22222 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2;;;;;

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

Розчин молока (опуклий):

2/Q2 2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2*2*2*; 2*;                 2; 2; 2;

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

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

/*///;2/;// ///22/Q//2;///;//;***2222222222222222222222                    

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

Здійснює введення у вигляді 2-х до останньої крапки з комою та виводить правильну кількість Q.

Послідовність є 0-індексованою (тобто 0 дорівнює 0, 1 - 0, 2 - 1, ...)

Виявив незначні синтаксичні помилки в ///, тому відредагував усі рішення.



3

MATL, 7 байт, A000217 , потрісканий

:sp{1}x

Послідовність n(n+1)/2(трикутні числа), починаючи з введення , n=1як зазначено на виклик: 1, 3, 6, 10, ... (вихід для введення 0не гарантовано бути однаковим в обох програмах).

Програма іншою мовою закінчується помилкою (після створення правильного виводу в STDOUT).

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

:            % Push [1 2 ... n], where n is implicit input
 s           % Sum of that array. Gives the desired result
   p         % Product of that. Gives the same number
    {1}      % Push a cell array containing number 1
       x     % Delete it


@ StevenH.Молодше! Моє оригінальне рішення булоx:ps{}1
Луїс Мендо


3

Python 3, 27 байт, A000012 , тріщини

Цього разу немає вводу!

if 1:
    if 1:
        print( '1' )

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

Я не думаю, що він потребує посилання TIO або пояснення!

(Напевно, не знадобиться багато часу, щоб зламатись якимось чином)

Запропонована відповідь (пробіли):

-Start-


    if1:if1:print('1')
-End-

(Початок і кінець не є частиною програми)

Вибачте, я забув додати, що він друкує STDERR:

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



Я відчуваю, що це повинен бути Whitespace, але це надрукує помилку STDERR, оскільки не вистачає необхідних каналів для завершення в [LF] [LF] [LF].
Мартін Ендер

1
@milk Не знову! : D
бобокак

1
@boboquack Це робить роботу, але робить друк на STDERR (які ви можете побачити, активувавши режим налагодження на TIO), і виклик каже , що відповіді повинні вказати чи приховані мовні записи в STDERR.
Мартін Ендер


3

Fuzzy Octo Guacamole , 11 байт, A001844 [Безпечно!]

hha02^d+**+

Тріщина, що подібні твори, є dh*h++^2*0aв Pyth. Хоча це не правильний вихідний формат.

Мій код все ще там! (і не в Pyth)

Випробування:

0 -> 1
1 -> 5

Рішення:

^++d0ah*2*h

У Джольфа.


1
Я клянусь, це виглядає так, що це було зроблено для Джольфа, але я просто не можу зрозуміти, що d...
ETHproductions

Зламаний (сподіваюся ...)
ETHproductions

@ETHproductions ах, приємно. Не впевнений, чи враховує це? Див. Редагування.
Rɪᴋᴇʀ

Мій код друкує новий рядок, але немає місця. Те саме з дійсним кодом.
жовтня

@EasterlyIrk Незважаючи на те, що я сказав, я не вважаю, що відповідь дала тріщину. Я все, що я сказав, все ще відповідає дійсності, але я не вважаю провідний пробіл проміжним дійсним, і я буду змінювати питання, щоб це відобразити.
Пшеничний майстер


2

JavaScript ES6, 38 байт, A000290 , тріщини

J=>eval(Array(J).fill(J).join`+`)|2-2;

Цей квадратний потяг досить чудовий, але нікуди не їде швидко. (Отримайте його? Квадратний поїзд? Як у, колеса? Ні? Гаразд, добре. Критики .)


Цільова відповідь: ретикулярна ( спробуйте онлайн! ),

in2Jo;=>eval(Array(J).fill(J).j`+`)|-2
in      take input, convert to number
  2J    raise to the second power
    o;  output and terminate; ignores following chars

2
Ваш код намагається переконати мене, що іншою мовою є J: P
ETHproductions


2

MATL , 13 байт, A002275 Зламано!

i:"@ax'1']
v!

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

Пояснення:

i           % Grab input
 :          % Push (range(1,input))
  "         % For each element in this range:
   @        %   Push it
    a       %   Is is truthy?
     x      %   Delete it
      '1'   %   Push '1'
         ]  %   End loop
v           % Join all of these '1's together
 !          % Transpose and display

1
Я відчуваю, що це є у Vim, але все життя я не можу його зламати
Wheat Wizard


2

2 придатних , 13 байт, A002378 , тріщин !

Сподіваючись, я щось не пропустив. Обчислює a (n) = n × (n + 1) :

>*?"!&)<=@\\}

Моя версія:

?"\>@&*})<\=!

Або розгорнуту версію:

  ? " \
 > @ & *
} ) < \ =
 ! . . .
  . . .

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

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



@MartinEnder Приємна робота! Я оновлю свою відповідь оригінальним поданням :).
Аднан



2

Python 2, 35 байт, A048735 , Safe

print(lambda u:u&u<<1)(input())>>1

Оригінальне рішення було моєю власною мовою програмування Wise .

:<<>&>print(lambda uuu1)(input())1

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


2

05AB1E, 5 байт, A000012 , Safe

$;$1?

Послідовність 1-х. Спробуйте в Інтернеті

Розроблене рішення: Arcyou

1;$$?

Спробуйте в Інтернеті . Я не зміг знайти документацію на цю мову, тому не маю пояснення, як вона працює.


Дурна крапка з комою ... Я майже міг використовувати сітківку, але я не можу мати і те, 1і ;.
mbomb007

1
Це не було зламано
Пшеничний майстер

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

Чи не слід зараз цю відповідь позначати як "прийняту"?
mbomb007

1

Пітон 2, 70 байт, A000217 Зламано!

У мене є відчуття, що це не буде зламано мовою, якою я користувався для іншої версії, ми побачимо :)

o=input()
v=0
i=1
while o:
 v+=i
 i+=1
print v


#|  d00->1@@@++-^,,[

Після цього я зрозумів, що неправильно перекрутив код (він не змінює дійсності розміщеної відповіді). Ось код, з якого я почав у Haystack:

v
0
v
0
i
1
-
>      d0[v
^-1@+@d+1@?,,o|


1

05AB1E , 9 байт, A000042 Зламано!

1×,1*-^$)

Це Унарне представлення натуральних чисел (OEIS). Отже, якби 3, наприклад, був вхід , тоді був би вихід 111.

Пояснення:

                    # implicit input
1                   # pushes 1 to the stack   
 ×                  # pushes "1" × (the input)
  ,                 # outputs the stack
   1*-^$)           # irrelevant

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


Оригінальне рішення, морква

1^*$-1×^)

Пояснення

1^             Push "1" to the stack
  *            Multiply the string by
   $-1         ...the input (as an integer) minus 1 times
      ×,)      Ignored by the interpreter

У *примножує струнний по (n+1)часу, так що a^*3призводить aaaaі не aaa. Тому я відніс1 із вхідних даних.

Лише тепер я розумію, що це стосується )обох мов: D

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



Якою була оригінальна прихована мова?
Пшеничний майстер

@WheatWizard Whoops, дякую, що знайшли це. Я додав мову зараз
Kritixi Lithos

1

J, 2 байта, A000290 , тріснути

*~

Що ж, може почати йти за цими двобайтами. Врожайність n × n або n 2 .

призначене рішення, Джольф, 2 байти

*~

Ну. Так. Це моя власна мова, і я думаю, що вона працює, тому що ~шукає розширений характер, але не знаходить його, тому просто ігнорує його. ¯ \ _ (ツ) _ / ¯ На жаль.



@StevenH. хороша робота! Я редагував задумане рішення.
Conor O'Brien

@ ConorO'Brien призначене вам рішення не було правильним рішенням. Щоб мови не розглядалися як оригінал, чи рішення не може бути поліглотом на обох мовах
Пшеничний майстер

@WheatWizard О. Це незручно.
Conor O'Brien



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