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


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. Это был ответ, который я ожидал на первый вопрос, так что не беспокойтесь. У меня есть пара идей для копов, надеюсь, у меня будет несколько минут утром, чтобы проработать их.
Лохматый

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 Тот, что взломан из этого кода, не является постоянным (по крайней мере, тот, о котором я знаю)
Говинд Пармар

Отредактировано в байтах для удобства грабителя.
Стивен


@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)); endwise (вместо этого выводятся степени 3 (A000244))


0

PHP , 20 байт взломан

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

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

последовательность печати https://oeis.org/A000012


Ваша оригинальная версия взломает эту версию.
vroomfondel


Вы имели в виду решение для первого? Если это так, вы должны откатиться назад.
vroomfondel

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

1
@rogaos Вам следует запретить последовательности, которые возвращают постоянное значение
Йорг Хюльсерманн

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.