Oświadczenie: To jest w dużej mierze inspirowane przez „Polyglot OEIS!” ale naprawia problem, który doprowadził do zamknięcia (patrz sekcja wyników) i został ponownie opublikowany, aby nie unieważniać odpowiedzi.
Wprowadzenie
Wszyscy znamy i kochamy encyklopedię sekwencji całkowitych online ( OEIS ). A co, jeśli stworzymy off-line wersję interesujących sekwencji? Cóż, byłoby to trochę zbyt łatwe, nieprawdaż i jak wybrałbyś sekwencję za pomocą naszego standardowego interfejsu !? Nie. Potrzebujemy łatwiejszego rozwiązania tego problemu. Poliglot!
Wkład
Twój wkład będzie liczbą całkowitą nieujemną n
.
Wydajność
Twój wynik będzie albo
n
-Ty wprowadzenie sekwencji OEIS LUB- Pierwsze
n
wpisy w sekwencji OEIS.
Możesz przyjąć, że indeks jest oparty na 1 lub 0, jak wolisz.
Aby nie uczynić tego pytania duplikatem Wszechstronne ciągłe ciągłe drukarki są zabronione. Powinno to również zwiększyć poziom trudności zgłoszeń i unikać „nudnych” rozwiązań;)
Sekwencja nie jest stała, jeśli istnieją dwa elementy sekwencji, które są nierówne.
Uhm, więc gdzie jest Wyzwanie?
Musisz poliglota powyższą funkcjonalność. To znaczy, jeśli obsługujesz języki A, B i C, wszystkie muszą implementować różne sekwencje OEIS. Wybór sekwencji nie jest ograniczony, z wyjątkiem tego, że potrzebujesz różnych dla wszystkich języków.
To znaczy, jeśli uruchomisz dostarczony program w języku A, wówczas wygenerowana zostanie sekwencja X, jeśli uruchomisz dostarczony program w języku B, wygenerowana zostanie sekwencja Y (z X! = Y) i jeśli uruchomisz dostarczony program w języku C należy wygenerować sekwencję Z (z X! = Z && Y! = Z).
Kto wygrywa?
Odpowiedź z największą liczbą par sekwencji / języka wygrywa. Pierwszy remis ma rozmiar kodu (w bajtach), przy czym niższy jest lepszy. Drugim czynnikiem rozstrzygającym jest czas składania zgłoszeń, przy czym wcześniejsze są lepsze.
Jakieś końcowe słowa / zasady?
- Musisz zadeklarować, który język wygeneruje sekwencję.
- Obowiązują standardowe zasady we / wy.
- Jeśli w różnych językach używane są różne kodowania, oba programy muszą używać tej samej sekwencji bajtów.
- Wersje językowe (Python 2/3) są liczone jako różne języki. Różne implementacje języka (takie jak Browser JS vs Node.js) również liczą się jako różne języki.
- Obowiązują standardowe luki.
Odpowiedzi:
3 języki (1 bajt) - Pyth ( A001477 ), MATL ( A000027 ), Braingolf ( A000217 )
W jaki sposób?
Q
wykonuje następujące czynności:W MATL oznacza to
+ 1
, więc w zasadzie oceniainput + 1
.W Pyth oznacza wejście, więc po prostu wyprowadza dane wejściowe.
W Braingolf jest wbudowany dla liczb trójkątnych.
Mini-poliglota
Pyth można zastąpić jednym z następujących języków: GolfScript , Pyke , Brachylog lub Brain-Flak .
źródło
10 języków, 122 bajty
Zdecydowanie mogę dodać trochę więcej. 1 indeksowany, chyba że określono inaczej.
Pamiętaj, że mogę nie być na bieżąco z linkami TIO, gdy jestem pewien, że nowsze zmiany nie wpłynęły na starsze programy - możesz je przetestować, jeśli chcesz, ale kopiując ponad 10 nowych linków TIO za każdym razem, gdy dokonam zmiany po pewnym czasie męczy się. Skopiuję nowe co około 5 aktualizacji.
cQuents v0, A000007
Odpowiedni kod:
#|A=1:0;
#|A
przechwytuje dane wejściowe i służy do komentowania w języku Python.=1
oznacza, że pierwszą pozycją jest1
,:0
oznacza, że reszta to0
,n
przekazuje th termin podany na wejściun
. cQuents v0 ma dziwny błąd / funkcję, która po;
odczytaniu nieoczekiwanego, ale poprawnego tokena, takiego jak , powoduje zakończenie analizy.Wypróbuj online!
PingPong, A001478
Odpowiedni kod:
#|A=1:0;~@
Dane wyjściowe za pośrednictwem kodu wyjścia. 0-indeksowane.
#
pomija następny znak.=
nic tu nie robi.1
wypycha1
i:
drukuje1
do STDOUT.0
popycha0
.)
nic nie robi.;
popycha wejście,~
wyskakuje i popycha-n-1
.@
kończy się. Kod wyjścia jest na górze stosu.Wypróbuj online!
axo, A001477
Odpowiedni kod:
}{\
0-indeksowane.
}
odczytuje i wypycha liczbę całkowitą ze STDIN (z jakiegoś powodu wymaga końca nowej linii),{
drukuje górę stosu i\
kończy program. Nie jestem pewien, co robią poprzednie postacie, ale nic, co ma znaczenie w tym przypadku.Wypróbuj online!
pieprzenie mózgu , A000027
Odpowiedni kod:
,[.,]
Prosty program dla kotów z esolangs.org. Wysyła dane wejściowe.
Wypróbuj online!
> <>, A000030
Odpowiedni kod:
#
...;oi
#
zwierciadła i zawija się w prawo, które kierują go do odczytuio;
, który wypisuje pierwszy znak wejścia. 0-indeksowane.Wypróbuj online!
Ruby, A023443
Odpowiedni kod:
print (0 and gets.to_i-1
...)
0-indeksowane. Wyświetla dane wejściowe minus 1.
0
jest prawdą w Ruby, ale falsey w Pythonie.Wypróbuj online!
Python 3, A000578
Odpowiedni kod:
print (0 and gets.to_i-1 or int(input())**(2+(1/2>0)));quit()
Oszukany z oryginalnego postu HyperNeutrino, ale jest to dość dobrze znany poliglot.
quit()
kończy program.Wypróbuj online!
Python 2, A000290
Odpowiedni kod:
#coding:utf-8
jest wymagany, aby węgiel działał. Zerwał też oryginalny post HyperNeutrino.quit()
kończy program.Wypróbuj online!
Węgiel drzewny, A001489
Odpowiedni kod:
⎚I±N»
0-indeksowane.
⎚
czyści konsolę (Charcoal drukuje ASCII bezI±N
zmian ) i wypisuje negatyw wejścia.»
jest błędem analizy i kończy działanie programu.Dzięki ASCII tylko za pomoc na czacie.
Wypróbuj online!
Kardynał, A020725
Odpowiedni kod:
Dodaje 1 do wejścia i zgniata wszystkie inne wskaźniki.
Wypróbuj online!
źródło
5 języków ( 05AB1E , faktycznie , CJam , galaretka , MATL ), 7 bajtów
Wypróbuj online !:
źródło
3 języki: Proton, A000583 ; Python 3, A000578 ; Python 2, A000290
Proton , 49 bajtów
Wypróbuj online!
Python 3 , 49 bajtów
Wypróbuj online!
Python 2 , 49 bajtów
Wypróbuj online!
Wyjaśnienie
Proton nie ma
'''...'''
łańcuchów, więc(''',''')
staje się('' ',' '')
, co w jakiś sposób nie powoduje problemów. Ocenia''
, dokonując(''',''')!=','
ocenyTrue
.Python ma te ciągi, więc
(''',''')
po prostu','
tak(''',''')!=','
oceniaFalse
.Python 2 używa podziału podłogowego dla liczb całkowitych, więc
1/2>0
jest fałszywy w Pythonie 2 i true w Pythonie 3.źródło
1//1;print(int(input())**(2+(1/2>0)+((''',''')!=',')));quit()
a następnie dodasz języki takie jak JavaScript5 języków, 107 bajtów
Perl: A000035
Stosując
=
jako ogranicznik dlas///
pomocą możemy łatwo wykluczają kod nie chcemy, i stosując)
jako ogranicznik dlaq{}
środków poprint
ingq
we wszystkich innych językach, możemy po prostu pracować na<>
wprost, bez niepokojące.Wypróbuj online!
Ruby: A001477
W Ruby
//
jest w rzeczywistości/
(dzielenie przez)/.../
(dopasowanie wyrażenia regularnego), więc dopóki wyrażenie regularne zostanie zakończone i zamienione na liczbę, możemy dzielić się nim bezpiecznie.__id__
jest krótszy niż.to_s.ord
, wtedy po prostu zawieramy resztę kodu, którego nie chcemy w'
s, ustawiamyq
nagets
iprint
to ze wszystkimi innymi.Wypróbuj online!
Python 2: A005843
Używając standardowej sztuczki, aby odróżnić 2 od 3 i dołączając rzeczy, których nie chcemy
"""
i komentarze.Wypróbuj online!
Python 3: A008585
Wypróbuj online!
JavaScript (przeglądarka ES6): A000027
Dość proste dla JS, okazało się, że łatwiej było nie korzystać z istniejących
print
i wybierać SpiderMonkey, ale może to być również możliwe.źródło
6 języków: Cubically 5/6/7/8/9/10,
444032 bajtówPrzekreślone 44 jest nadal regularne 44; (
To drukuje:
Wyjaśnienie:
Wypróbuj online! (Cubical 6x6x6)
źródło