Sekwencje kradzieży: gliny


10

To . To jest wątek Cops . Przejdź do wątku złodziei tutaj .

Od kiedy dołączyłem do witryny, zauważyłem szereg wyzwań OEIS (Encyklopedia sekwencji liczb całkowitych). Wydaje się słuszne, że mamy wyzwanie dla gliniarzy i rabusiów, które określa, kto jest mistrzem internetowych sekwencji liczb całkowitych, raz na zawsze.

Edycja: Aby zapobiec trywialnym odpowiedziom, policjanci tracą 1/2 punktu za każde złamane zgłoszenie. Dodatkowo, dla celów tego wyzwania, ciągłe sekwencje nie są dozwolone. Dotyczy to tylko rozwiązań opublikowanych po tej edycji.

Gliny

Napisz program lub funkcję, która bez danych wejściowych w sposób deterministyczny drukuje dowolną sekwencję z OEIS . Usuwając niektóre podzbiory znaków, program musi być w stanie wydrukować inną sekwencję OEIS, gdy działa w tym samym języku. Nowa sekwencja musi być całkowicie nowa, nie tylko pierwsza o innej nazwie lub z innym przesunięciem. Żadna sekwencja nie może być po prostu powtarzaną stałą wartością.

Musisz podać pierwszą funkcję wraz z nazwą sekwencji OEIS, aby można było zweryfikować poprawność. Jest OK, jeśli zachowanie budzi wątpliwości dotyczące wartości MAX_INT Twojego języka lub 256, w zależności od tego, która wartość jest większa.

Rabusie

Usuń znaki z niektórych zgłoszeń policjantów, aby nowy program wyświetlał dowolną inną sekwencję z OEIS. Podaj nową funkcję wraz z nazwą nowej sekwencji OEIS. Oto narzędzie, które pozwala upewnić się, że przesłanie jest prawidłowe (tzn. Usuwa znaki bez śmiesznego interesu. Nie sprawdza samej sekwencji).

W twoim najlepszym interesie jest usunięcie jak największej liczby postaci ze zgłoszenia gliny. Jeśli inny bandyta (ktoś oprócz policjanta, który był autorem oryginalnego programu) przyjdzie i znajdzie rozwiązanie, które znajdzie krótszy inną inną sekwencję, że bandyta kradnie swój punkt. (Pamiętaj, że po prostu gra w golfa i drukowanie tej samej sekwencji nie jest wystarczające, aby ukraść punkt).

Zasady i punktacja

Jeśli po upływie tygodnia nikt nie był w stanie złamać twojego rozwiązania, możesz oznaczyć swoje rozwiązanie jako bezpieczne, podając drugi program wraz z nazwą generowanej przez niego sekwencji.

Dostajesz jeden punkt za każde bezpieczne wysłanie i jeden punkt za każde złamane zgłoszenie. Policjanci tracą 1/2 punktu za każde pęknięte poddanie. Zauważ, że inny złodziej może ukraść twój punkt z pękniętego złożenia w dowolnym momencie, oferując krótszy program, który daje inną sekwencję.

Policjanci mogą wystawić tylko jedno wyzwanie na język, na osobę.

Gracz, który zdobędzie najwięcej punktów o godzinie 12:00 UTC w dniu 7 lipca, wygrywa.



1
To wyzwanie jest bardzo podobne. Nie oszukam go, ale myślę, że to prawdopodobnie duplikat.
FryAmTheEggman

1
@FryAmTheEggman ah, tego nie widziałem. Nie sądzę, że jest to dość niedorzeczne, ponieważ hamowanie dystansu = / skreślenia, a rabusie mają znacznie więcej swobody w znajdowaniu niezamierzonych odpowiedzi, ale jest bardziej podobny, niż bym chciał.
vroomfondel

1
Dzięki, @rogaos. Takiej odpowiedzi oczekiwałem na pierwsze pytanie, więc nie martw się. Mam kilka pomysłów dla gliniarzy, mam nadzieję, że dostanę kilka minut rano, aby je opracować.
Kudłaty

3
Myślę, że gra w golfa vs dystans Levensteina znacznie to różni. Gliniarze muszą rozważyć drastycznie różne potencjalne rozwiązania.
Nathan Merrill

Odpowiedzi:



1

C, A000217, 239 bajtów Pęknięty

To nie jest więc nie zawracałem sobie głowy.

#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;
}

Sekwencja: https://oeis.org/A000217


1
@rogaos Ten, który został złamany z tego kodu, nie jest stały (przynajmniej ten, o którym wiem)
Govind Parmar

Edytowane w bajtach dla wygody rabusia.
Stephen


@rogaos Myślę, że można go złamać lepiej niż mój, czyniąc go stałym, ale myślę, że ciekawiej jest być niestałym, więc głosowałbym, aby nie był to wyjątek od stałej zasady
nmjcman101

1
@ nmjcman101 dość uczciwie, ponieważ Govind nie zamierzał, aby była stała. Usuwanie mojego komentarza powyżej.
vroomfondel

1

Python 2, 273 bajtów, pęknięty

Sekwencja początkowa: 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')))

Wypróbuj online!



2
mega cracked (myślę)
Stephen

1

MOO, 86 bajtów, bezpieczny

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

Drukuje potęgi dwóch (A000079).

Rozwiązanie:

a = 1; while (a> -1) a = $ mat_utils: suma (a, a, a); powiadomienie (gracz, tostr (a)); na koniec (który zamiast tego wyświetla moc 3 (A000244))


0

PHP , 20 bajtów Cracked

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

Wypróbuj online!

sekwencja drukowania https://oeis.org/A000012


Twoja oryginalna wersja łamie tę wersję.
vroomfondel


Czy miałeś na myśli pierwsze rozwiązanie? Jeśli tak, powinieneś wycofać się.
vroomfondel

1
@rogaos, złamałem obecną wersję, nie widząc, że się zmieniła. Wycofanie spowodowałoby bałagan.
Peter Taylor,

1
@rogaos Powinieneś zakazać sekwencji, które zwracają stałą wartość
Jörg Hülsermann

0

cQuents (starsze zatwierdzenie), 10 bajtów, pęknięty

=0,1,1:z+y

Jest to wciąż język WIP, ale poprawiłem interpretera, żeby działał. Kliknij nazwę języka dla łącza Github.

To generuje sekwencję Fibonnacciego : A000045

Wyjaśnienie:

(ponieważ nie mam dokumentacji i nie oczekuję, że przeczytasz mój kod tłumacza)

=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

Gdyby stałe sekwencje były nadal dozwolone, byłoby to bardzo łatwe do obrabowania.



Ten język jest doskonały
vroomfondel

@rogaos jeszcze się nie skończyło, nigdzie blisko, ale dzięki :)
Stephen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.