To wyzwanie dla gliniarzy i rabusiów , wątek rabusiów można znaleźć tutaj .
Twoim zadaniem jest napisanie kodu, który wyprowadza sekwencję OEIS i zawiera nazwę sekwencji w kodzie ( A______
) i wyświetla drugą osobną sekwencję, gdy nazwa sekwencji w kodzie zostanie zmieniona na nazwę drugiej sekwencji.
Oto przykład w Haskell, który działa dla A000217 i A000290 .
f x|last"A000217"=='0'=x^2|1>0=sum[1..x]
Następnie odkryjesz jedną z dwóch sekwencji, a kod utrzymujący drugą sekwencję w tajemnicy. Rabusie spróbują dowiedzieć się, co to jest ukryta sekwencja. Jeśli złodziejowi uda się ustalić, jaka jest twoja sekwencja (lub inna sekwencja spełniająca kryteria), twoja odpowiedź jest łamana. Jeśli nie zrobisz tego w ciągu tygodnia od opublikowania odpowiedzi, możesz oznaczyć ją jako Bezpieczną i ujawnić zamierzone rozwiązanie do weryfikacji. Bezpiecznych odpowiedzi nie można złamać.
Wejście wyjście
Zabrano stąd
Kod może być funkcją lub kompletnym programem, który pobiera n za pomocą standardowej metody wprowadzania i generuje n- ty ciąg sekwencji indeksowany przez podany indeks na stronie OEIS.
Musisz obsługiwać wszystkie wartości podane w plikach OEIS b dla tej sekwencji, dowolna liczba nie w plikach b nie musi być obsługiwana.
Punktacja
Twój wynik będzie liczbą bajtów w kodzie, przy czym mniej bajtów będzie lepszych.
źródło
Odpowiedzi:
Python 3, 59 bajtów, A162626 , złamany przez Kreatora pszenicy
To
jestmiało być niemożliwe, prawda?źródło
Python 3 , 62 bajty, A017016 ( pęknięty )
Wypróbuj online!
źródło
Japt , 13 bajtów ( pęknięty )
Jest (co najmniej) jedno inne rozwiązanie, jeśli ktoś inny chce go dźgnąć.
Wypróbuj online
A000012
Wyjaśnienie
źródło
(sum_of_numbers_in_oeis(excluding 'A') + 1)%4
. : DMATL ,
3029 bajtów ( pęknięty )A077430
Wypróbuj online!
-1 bajt dzięki @Sanchises
źródło
I
1 bajt.I
został zainicjowany na 3l
(jednym) iO
(zero) prawie nigdy nie powinieneś używać spacji w swoich programach MATL. W pokrewnej uwadze sprawdź również tabelę 7, która zawiera wiele użytecznych predefiniowanych stałych (choć strzeż się, że np.4X2Z%
Ma skrót1Z%
)C #, 28 bajtów ( pęknięty )
Współpracuje z A000290 .
Łatwo to zacząć.
Wypróbuj online!
źródło
Python 2, 43 bajty, A000079 ( pęknięty )
Wypróbuj online
źródło
C #, 75 bajtów, ( pęknięty )
A000244
Wypróbuj online!
źródło
% 2
- więc program może dosłownie tylko dwie rzeczy , w zależności od wyniku: jedna za0
i jedna za1
. Więc umieściłem nieparzystą liczbę na swoim miejscu, a wyzwanie trochę się złamało.Python 2 , 53 bajty, A000012 [pęknięty]
Wypróbuj online!
źródło
Python 3, 65 bajtów, A000027, pęknięty
Zwariowana arytmetyka!
źródło
n=12
co wygląda dobrze, ale wynik będzie wyłączony przez jeden indeks - czy złamałem się z błędem, czy wpadłem na bardzo sprytnego czerwonego śledzia?a(n) = floor(n/2)
; wymieniona sekwencja zaczyna się od 0. To jest jednak zamierzone rozwiązanie.Smalltalk, 148 bajtów, bezpiecznie!
A018253
Pobiera na wejściu liczbę całkowitą, sekwencja jest oparta na 1.
źródło
Haskell, 226 bajtów, bezpiecznie!
Nie jestem pewien, czy sprytny czy brzydki, może oba ...
Więc teraz oblicza to A001906 , ale powinno być w stanie wygenerować wiele sekwencji.
Wypróbuj online!
Rozwiązanie: A131078
Zastanawiasz się, czy to było zbyt trudne, czy nikt nie próbował?
o 1
abyo 6
to cyfry numeru serii,m
jest lista operacji.l
jest rekurencyjnie zdefiniowaną nieskończoną listą z pierwszymi dwiema wartościami wyprowadzonymi z numeru serii, a pozostałe obliczone z poprzednich dwóch przy użyciu stałej operacji zm
. W przypadku A001906 definicję można uprościć(flip(+))
jest (zwykle) taki sam jak(+)
i otrzymujemy dobrze znaną (ale nie najkrótszą) definicję liczb Fibonacciego. Ten schemat rekurencji mógłby bezpośrednio obliczyć A001906, ale wymaga to operacji bardziej skomplikowanej niż te wm
. Inny przykład: przy użyciu wartości wyjściowych1
i2
oraz działania(*)
daje seria A000301 . Jest on obliczany przez nasz kod po zastąpieniu numeru serii?103206
.Wreszcie funkcja
f
indeksuje się do listyl
, ale dopiero po pewnej transformacji danych wejściowych. W przypadku A001906 środkowa część zmniejsza się do(*)2
, dzięki czemu liczby Fibonacciego otrzymujemy tylko w pozycjach parzystych. Właściwą częścią staje sięflip const 1
, która jest funkcją tożsamości i nie przeszkadza dalej.Dla rozwiązania problemu
A131078
wartości wyjściowel
są1
a0
, a działanie toflip const
, co pozwalal
się1,0,1,0,...
. Środkowa częśćf
staje się(flip div 4)
, co powoduje1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,...
. Wyglądało to na ładną odpowiedź, ale potem zobaczyłem, że A131078 zaczyna się odn=1
, więc dodałem właściwą częśćf
, która tutaj jestflip(-)1
odjęcie jednej.Mój pomysł polegał na tym, aby nieco go zaciemnić, używając
m
i indeksując go cyframi z numerów serii, a następnie stał się bardziej zaciemniony (skomplikowane terminy), aby działał (może nie szukałem wystarczająco długo alternatyw); a potem stało się jeszcze bardziej zaciemnione (prawa częśćf
), aby naprawdę działało. Nadal wydaje mi się, że zgadywanie i próby mogły go złamać.źródło
0
. W porządku, bo zaczyna się dopiero1
! Rozpoczęcie od1
powinno również usunąć niektóre błędy „dzielenia przez zero”. Jestem zaskoczony przykładami działającymi wiecznie. Może transformacja indeksu tworzy w tych przypadkach bardzo duże wartości ...dc , 52 bajty, pęknięty
Ten działa z A000217 :
Wypróbuj online!
źródło
Python 3.6, 114 bajtów, pęknięty
A005843
g(n)
zwraca n-tą wartość sekwencji dla n> = 0.random.choices(s,k)
jest nowy w Pythonie 3.6, zwracak
elementy wybranes
z zamiennika.źródło
Chip , 67 bajtów, złamany przez Yimin Rong
A000012 . Trochę bezczelny, tak.
Wypróbuj online!
Używa bajtów do we / wy, więc byłem miły i zbudowałem bashy / pythony wrapper.
.
źródło