Крадіжки послідовностей: Копи


10

Це . Це нитка Cops . За розбійницькою ниткою йдіть сюди .

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

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

Копи

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

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

Розбійники

Видаліть символи з поданих даних Копа, щоб ваша нова програма виводила будь-яку іншу послідовність із OEIS. Надайте нову функцію разом з назвою нової послідовності OEIS. Ось утиліта, щоб переконатися, що ваше повідомлення є дійсним (тобто видаляє символи без будь-якої смішної справи. Не перевіряє саму послідовність.)

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

Правила та оцінка

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

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

Копи можуть публікувати лише одне виклик на кожній мові на особу.

Гравець з найбільшою кількістю очок о 12:00 UTC 7 липня виграє.


Публікація в пісочниці: codegolf.meta.stackexchange.com/a/13042/66460
vroomfondel

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

1
@FryAmTheEggman ах, не бачив цього. Я не думаю, що це цілком обман, так як забиття дистанції = / видалення, і грабіжники мають набагато більше свободи для пошуку ненавмисних відповідей, але це більше схоже, ніж я хотів би.
vroomfondel

1
Дякую, @rogaos. Таку відповідь я очікував на перше запитання, тому не хвилюйтесь. Отримав пару ідей для Cops, сподіваюся, я отримаю кілька хвилин вранці, щоб їх опрацювати.
Кудлатий

3
Я думаю, що відстань від гольфу проти Левенштайна робить це суттєво різним. Копи повинні розглядати різно різні потенційні рішення.
Натан Меррілл

Відповіді:



1

C, A000217, 239 байт Cracked

Це не тому я не турбувався.

#include <stdio.h>
#include <limits.h>
int main()
{
    int i, n, temp = 0;
    for(i = 0; i < INT_MAX; i++)
    {
        n = 0;
        temp = i;
        while(temp)
            n+=temp--;
        printf("%d, ", n);
    }
    return 0;
}

Послідовність: https://oeis.org/A000217


1
@rogaos Той, що зламаний від цього коду, не є постійним (принаймні, тим, про кого я знаю)
Govind Parmar

Відредаговано в байтах для зручності грабіжника.
Стівен


@rogaos Я думаю, що це може бути зламано краще, ніж моє, зробивши його постійним, але я думаю, що це цікавіше бути непостійним, тому я би проголосував за те, щоб це не було винятком з постійного правила
nmjcman101

1
@ nmjcman101 досить справедливо, оскільки Говінд не мав намір це бути постійною. Видалення мого коментаря вище.
vroomfondel

1

Python 2, 273 байтів, тріщини

Початкова послідовність: A004442

import zlib, base64;exec(zlib.decompress(base64.b64decode('eJzLtDUAAAHoANc=')))
while True:print eval(zlib.decompress(base64.b64decode('eJwzAgAAMwAz')))^eval(zlib.decompress(base64.b64decode('eJwzjssEAAHBAPs='))),;exec(zlib.decompress(base64.b64decode('eJzL1LY1BAAC1AED')))

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




1

MOO, 86 байт, безпечно

a=0;b=1;while(a>-1)a=$math_utils:sum(a,a);a=max(1,a);notify(player,tostr(a));endwhile

Друкується потужність двох (A000079).

Рішення:

a = 1; while (a> -1) a = $ math_utils: sum (a, a, a); notify (player, tostr (a)); endtime (який замість цього виводить потужності 3 (A000244))


0

PHP , 20 байт Cracked

for(;;)echo+!$i,",";

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

послідовність друку https://oeis.org/A000012


Ваша оригінальна версія тріщить цю версію.
vroomfondel


Чи було у вас на увазі рішення для першого? Якщо так, то слід відкотити.
vroomfondel

1
@rogaos, я зламав поточну версію, не побачивши, що вона змінилася. Відкат назад спричинить безлад.
Пітер Тейлор

1
@rogaos Вам слід заборонити послідовності, які повертають постійне значення
Jörg Hülsermann

0

cQuents (старіший коміт ), 10 байтів, тріщини

=0,1,1:z+y

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

Це виводить послідовність фібоначків : A000045

Пояснення:

(тому що я не маю жодної документації і не очікую, що ти прочитаєш мій код перекладача)

=0,1,1      Set start to [0,1,1]
      :     Mode: sequence
       z+y  Each term is the previous two terms added together
            Because there is no input, output the whole sequence

Якщо постійні послідовності все ж дозволяли, це було б дуже просто пограбувати.



Ця мова відмінна
vroomfondel

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