To jest nić rabusiów tego wyzwania
Gliniarze wybiorą sekwencję OEIS i napiszą dwa pełne programy w dwóch różnych językach, które produkują ten n-ty element w sekwencji, gdy otrzymają n przez STDIN. Oba programy muszą być wzajemnie anagramami, co oznacza, że każdy z nich może być przestawiony z liter drugiego.
Przedstawią numer OEIS, kod źródłowy i nazwę jednego języka, w którym się znajduje.
Musisz znaleźć anagram pisma oryginalnego gliniarza, który działa w języku innym niż ten używany przez gliniarza. Do zgryzienia odpowiedź trzeba tylko znaleźć dowolny język i program, który generuje sekwencję i to anagram od oryginału, niekoniecznie odpowiedź policjant myślał o.
Możesz generować kod znakowy lub dołączyć STDERR do swojego rozwiązania, ale tylko wtedy, gdy policjant zaznaczy, że ukryte rozwiązanie to robi. Wyjście dziesiętne do STDOUT jest zawsze poprawnym pęknięciem.
W ten sposób policjantów zachęca się do jak najtrudniejszego znalezienia języka, który wykona zadanie, używając ich listy symboli.
Punktacja
Zwycięzcą tego odcinka będzie osoba z największą liczbą pęknięć. Tylko pierwszy crack dla każdego rozwiązania będzie się liczył do wyniku.
Tablica liderów
Ogromne podziękowania dla wszystkich, którzy wzięli udział w tym wyzwaniu.
Oto tabela liderów w obecnej formie
Place User Score
-----------------------------
1 Adnan 3
1 Kritixi Lithos 3
1 Emigna 3
1 milk 3
5 Steven H. 2
5 Wheat Wizard 2
5 jimmy23013 2
8 ETH Productions 1
8 Dennis 1
8 alleks 1
8 Martin Ender 1
8 Oliver 1
8 Conor O'Brien 1
źródło
Odpowiedzi:
05AB1E , 38 bajtów, Loovjo , A000290
Wypróbuj online!
Prawdopodobnie nie jest to zamierzone rozwiązanie, ale działa.
Wyjaśnienie
źródło
1.0 is not a number
? Czy mógłbyś proszę opracować?is_number
sprawdza, czy składa się tylko z liczby0-9
. Ponieważ.
nie jest liczbą, staje się fałszem. Funkcja mogłaby użyć bardziej opisowej nazwy :)Jolf, 15 bajtów, Adnan , A000290
Wypróbuj tutaj! Zdecydowanie nie jest to zamierzone rozwiązanie, ale hej, to działa.
Wyjaśnienie
źródło
05AB1E , 49 bajtów, Kreator pszenicy , A000290
Właściwie to samo podejście, co crack Emigny: str.
Wyjaśnienie:
Wypróbuj online!
źródło
05AB1E , 35 bajtów, Oliver , A000290
Policjanci powinni przestać wysyłać
n^2
wyzwania w pythonie ...Wypróbuj online!
Wyjaśnienie
źródło
2sable , 7 bajtów, Kritixi Lithos , A005843
Kod:
Wyjaśnienie:
Wypróbuj online!
źródło
Sześciokąt , 13 bajtów, Adnan , A002378
Wypróbuj online!
Rozłożony:
Nie w 100%, czy jest to oryginał, ponieważ lewy górny
\
nie jest używany.<\>
Są tylko lustra, więc program jest rzeczywiście całkowicie liniowa:źródło
V , 13 bajtów, DJMcMayhem , A002275
Wypróbuj online!
To może być pierwsze rozwiązanie w języku zamierzonym przez autora.
Wyjaśnienie
źródło
This might be the first solution in the language the author intended.
Spot on. :)2sable, Conor O'Brien , A000290
Wypróbuj online!
Nie wiem, jak to działa, tak naprawdę jest tylko jeden program, który spełnia wymagania i po prostu jestem brutalnie zmuszony do znalezienia języka, w którym pracował.
Po przejrzeniu dokumentacji jestem w stanie znaleźć wyjaśnienie:
źródło
Pyth , 26 bajtów, Steven H. , A023443
Kod:
Wypróbuj online .
Dość proste:
źródło
Python 3, 118 bajtów, ETHproductions, A042545
Przetestuj na Ideone .
Składanie gliny
Co za różnica
Składanie policjantów nie działa w Pythonie 3 z dwóch powodów.
Funkcja wprowadzania w Pythonie 2 automatycznie analizuje jeden wiersz danych wejściowych, podczas gdy odpowiednik w Pythonie 3 po prostu zwraca wiersz jako ciąg znaków. Możemy po prostu wywołać int, aby to naprawić.
print
była instrukcją w Pythonie 2, ale jest funkcją w Pythonie 3. W szczególności oznacza to, że musimy otoczyć jej argument nawiasami.Oznacza to, że potrzebujemy
int()
i()
, ale te postacie nie są częścią komentarza. Oznacza to, że musimy wprowadzić pewne zmiany.Zamiast ułamków s śledzimy 1 / s .
Inicjalizacja s -
s=1/(801**.5-28)
- staje sięs=801**.5-28
zapisaniem znaków1/()
.Współczynnik [-1] w aktualizacji a -
int(s)
- staje sięint(1/s)
kosztem postaci1/
.Aktualizacja s -
s=1/(s-int(s))
- staje sięs=1/s-1//s
kosztem postaci1//
, ale ratowaniem postaci(int())
.Zapisane znaki
()(int())
obejmują te, których potrzebowaliśmy do przeniesienia kodu do Pythona 3, ale ich uzyskanie nas kosztowało1//
. Możemy wziąć//
z komentarza, ale będziemy musieli zapisać1
gdzie indziej.Jednym ze sposobów (jedyna?) Ratowania konieczne
1
jest zastąpienie1
w inicjalizacji z . To kosztuje te cztery postacie, ale możemy wziąć0==0
00
z komentarza.Do tej pory mamy następujący kod.
Aby odzyskać jeden z
=
„teraz zawdzięczamy”, możemy przepisać inicjalizację s i a z pojedynczym przypisaniem:s,a=801**.5-28,[0,0==0]
Dodatkowo oszczędza to a;
i kosztuje a,
, które można dodać i usunąć z komentarza.Drugi
=
można zapisać, nie zapisując danych wejściowych w zmiennej, tj.range(int(input()))
Zamiast tego zapisując, zapisując znaki wi=
. Używamy I po pętli, a także, ale ja th element jest właśnie drugi z prawej strony, więc możemy wymienić z . Z tego samego powodu w pętli można zastąpić ciało .i
-2
a[-2]
i
Mamy teraz permutację do działania kodu Python 3:
Jednak ten kod działa również w Pythonie 2! Jednym ze sposobów naprawienia tego jest zastąpienie
print(a[-2])
go(print(a[-2]),)
; mamy znaki, których potrzebujemy w komentarzu. Jak wspomniano wcześniej, print jest funkcją w Pythonie 3, więc konstruuje krotkę ( Brak ,) . Jednak instrukcja print Python 2 jest składnią błędu w krotce literału.źródło
CJam, 39 bajtów, mleko , A000007
Wypróbuj tutaj.
źródło
Pyth, 7 bajtów, Luis Mendo , A000217
Zgodnie z żądaniem program kończy działanie z błędem po
p
zredagowaniu poprawnej odpowiedzi.Wypróbuj online tutaj !
źródło
05AB1E , 12 bajtów, tuskiomi , A000012
Wypróbuj online!
Wyjaśnienie
źródło
05AB1E , 38 bajtów, Conor O'Brien , A000290
Wypróbuj online!
Wyjaśnienie
Jest to oparte na pęknięciu Emigny tutaj .
źródło
05AB1E, 27 bajtów, Boboback , A000012
Wypróbuj online
Jak to działa:
źródło
CJam, 70 bajtów, shebang , A000217
Wypróbuj tutaj.
źródło
Wypukły , 75 bajtów, Boboback , A004526
Wypróbuj online
Jak to działa:
źródło
Dip , 9 bajtów, Kritixi Lithos
Zdecydowanie nie zamierzona odpowiedź.
Wyjaśnienie:
źródło
Pip , 6 bajtów, DLosc , A000012
Pomyślałem, że najpierw spróbuję esolangu OP ;-)
Wypróbuj online.
źródło
05AB1E , 25 bajtów, Mego , A000583
Kod:
Wyjaśnienie:
Wypróbuj online!
źródło
Dip , 8 bajtów, Oliver , A000042
Wyjaśnienie
Zabawne jest to, że to był zamierzony język! Dip to esolang stworzony przez Olivera.
Testuj przypadki i uruchamiaj dip z wiersza poleceń
źródło
2sable, 14 bajtów, Dopapp , A121377
Wypróbuj online.
Jak to działa (mniej więcej):
źródło
05AB1E , 4 bajty, Oliver , A000012
Wypróbuj online!
To jest sekwencja
1
s.Wyprowadza to
1
bez względu na wejście.źródło
Dip , 5 bajtów, Oliver , A000012
Sekwencja po prostu drukuje
1
bez względu na wejście. Odpowiedź Olivera drukuje a1.0
. Ten program drukuje również1.0
. To najwyraźniej jest zamierzonym rozwiązaniem.Wyjaśnienie
Alternatywne rozwiązanie (dzięki uprzejmości @milk)
Wypukły , 5 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
"1"
) według wszystkich[input]
znaków (ponieważ wejście jest liczbą