Haftungsausschluss: Dies ist stark von "Polyglot the OEIS!" behebt jedoch das Problem, das zum Schließen führte (siehe Abschnitt Ausgabe) und wurde erneut veröffentlicht, um Antworten nicht ungültig zu machen.
Einführung
Wir alle kennen und lieben die Online-Enzyklopädie der Integer-Sequenzen ( OEIS ). Was wäre, wenn wir eine Offline- Version der interessanten Sequenzen machen würden? Nun, das wäre ein bisschen zu einfach, und wie würden Sie eine Sequenz mit unserer Standardschnittstelle auswählen !? Nein, wir brauchen eine einfachere Lösung. Eine Polyglotte!
Eingang
Ihre Eingabe ist eine nicht negative Ganzzahl n
.
Ausgabe
Ihre Ausgabe wird entweder sein
- Der
n
-te Eintrag einer OEIS-Sequenz ODER - Die ersten
n
Einträge einer OEIS-Sequenz.
Sie können den Index als 1-basiert oder 0-basiert annehmen, wie Sie möchten.
Damit diese Frage nicht zu einem Duplikat der Konstantensequenzen des vielseitigen Ganzzahldruckers wird, sind sie verboten. Dies sollte auch den Schwierigkeitsgrad der Einreichungen erhöhen und "langweilige" Lösungen vermeiden;)
Eine Sequenz ist nicht konstant, wenn zwei ungleiche Sequenzelemente vorhanden sind.
Ähm, wo ist die Herausforderung?
Sie müssen die oben genannte Funktionalität polyglotisieren. Wenn Sie also die Sprachen A, B und C unterstützen, müssen alle unterschiedliche OEIS-Sequenzen implementieren. Die Auswahl der Reihenfolge ist nicht beschränkt, außer dass Sie für alle Sprachen unterschiedliche benötigen.
Das heißt, wenn Sie das bereitgestellte Programm in Sprache A ausführen, wird die Sequenz X generiert, wenn Sie das bereitgestellte Programm in Sprache B ausführen, wird die Sequenz Y generiert (mit X! = Y) und wenn Sie das bereitgestellte Programm ausführen in der Sprache C soll dann die Folge Z erzeugt werden (mit X! = Z && Y! = Z).
Wer gewinnt?
Die Antwort mit den meisten Sequenz- / Sprachpaaren gewinnt. Das erste Kriterium ist die Codegröße (in Byte), wobei die niedrigere besser ist. Der zweite Tie-Breaker ist die Submission Time, wobei eine frühere besser ist.
Irgendwelche abschließenden Worte / Regeln?
- Sie müssen angeben, welche Sprache welche Sequenz erzeugen soll.
- Es gelten die Standard-E / A-Regeln.
- Wenn zwischen den Sprachen unterschiedliche Codierungen verwendet werden, müssen beide Programme dieselbe Bytefolge verwenden.
- Sprachrevisionen (Python 2/3) gelten als verschiedene Sprachen. Verschiedene Implementierungen einer Sprache (z. B. Browser JS vs Node.js) zählen ebenfalls als verschiedene Sprachen.
- Es gelten Standardlücken.
Antworten:
3 Sprachen (1 Byte) - Pyth ( A001477 ), MATL ( A000027 ), Braingolf ( A000217 )
Wie?
Q
macht folgendes:In MATL heißt das
+ 1
, es wird also im Grunde genommen ausgewertetinput + 1
.In Pyth bedeutet dies Eingabe, sodass nur die Eingabe ausgegeben wird.
In Braingolf ist dies die integrierte Funktion für Dreieckszahlen.
Mini-Polyglot
Pyth kann durch eine der folgenden Sprachen ersetzt werden: GolfScript , Pyke , Brachylog oder Brain-Flak .
quelle
10 Sprachen, 122 Bytes
Ich kann definitiv ein paar mehr hinzufügen. 1-indiziert, sofern nicht anders angegeben.
Beachten Sie, dass ich bei TIO-Links möglicherweise nicht auf dem neuesten Stand bin, wenn ich sicher bin, dass sich neuere Änderungen nicht auf ältere Programme auswirken. Sie können sie testen, wenn Sie möchten, aber bei jeder Änderung 10+ neue TIO-Links kopieren wird nach einer Weile anstrengend. Ich werde alle 5 Updates oder so neue kopieren.
cQuents v0, A000007
Relevanter Code:
#|A=1:0;
#|A
fängt die Eingabe ab und ist für Python-Kommentare da.=1
Bedeutet, dass das erste Element ist1
,:0
der Rest ist0
, gibt denn
eingegebenen Begriff ausn
. cQuents v0 hat einen seltsamen Bug / eine seltsame Funktion, die beim;
Lesen eines unerwarteten, aber gültigen Tokens, wie z. B. , das Parsen beendet.Probieren Sie es online!
PingPong, A001478
Relevanter Code:
#|A=1:0;~@
Ausgänge über Exit-Code. 0-indiziert.
#
überspringt das nächste Zeichen.=
tut hier nichts.1
drückt1
und:
druckt1
auf STDOUT.0
drückt0
.)
tut nichts.;
drückt die Eingabe,~
knallt und drückt-n-1
.@
beendet. Der Exit-Code befindet sich oben im Stapel.Probieren Sie es online!
Axo, A001477
Relevanter Code:
}{\
0-indiziert.
}
Liest und verschiebt eine Ganzzahl von STDIN (erfordert aus irgendeinem Grund einen abschließenden Zeilenumbruch),{
druckt einen Stapelanfang und\
beendet das Programm. Ich bin mir nicht sicher, was die vorangegangenen Zeichen tun, aber nichts, was in diesem Fall von Bedeutung ist.Probieren Sie es online!
Brainfuck, A000027
Relevanter Code:
,[.,]
Einfaches Katzenprogramm von esolangs.org. Gibt die Eingabe aus.
Probieren Sie es online!
> <> A000030
Relevanter Code:
#
...;oi
#
spiegelt und bricht nach rechts um, wodurch es zum Lesen geleitet wirdio;
und das erste Zeichen der Eingabe ausgegeben wird. 0-indiziert.Probieren Sie es online!
Ruby, A023443
Relevanter Code:
print (0 and gets.to_i-1
...)
0-indiziert.
0
Gibt die Eingabe minus 1 aus. Ist in Ruby wahr, in Python jedoch falsch.Probieren Sie es online!
Python 3, A000578
Relevanter Code:
print (0 and gets.to_i-1 or int(input())**(2+(1/2>0)));quit()
Vom Original-Post von HyperNeutrino abgerissen, aber ein ziemlich bekannter Polyglot.
quit()
beendet das Programm.Probieren Sie es online!
Python 2, A000290
Relevanter Code:
#coding:utf-8
wird benötigt, damit das Charcoal-Zeug funktioniert. Auch von HyperNeutrinos ursprünglichem Post abgerissen.quit()
beendet das Programm.Probieren Sie es online!
Charcoal, A001489
Relevanter Code:
⎚I±N»
0-indiziert.
⎚
Löscht die Konsole (Charcoal druckt ASCII wie sie ist) undI±N
druckt das Negativ der Eingabe.»
ist ein Analysefehler und beendet das Programm.Dank ASCII-only für die Hilfe im Chat.
Probieren Sie es online!
Cardinal, A020725
Relevanter Code:
Fügt der Eingabe 1 hinzu und drückt alle anderen Zeiger zusammen.
Probieren Sie es online!
quelle
5 Sprachen ( 05AB1E , Eigentlich , CJam , Gelee , MATL ), 7 Bytes
Probieren Sie es online !:
quelle
3 Sprachen: Proton, A000583 ; Python 3, A000578 ; Python 2, A000290
Proton , 49 Bytes
Probieren Sie es online!
Python 3 , 49 Bytes
Probieren Sie es online!
Python 2 , 49 Bytes
Probieren Sie es online!
Erläuterung
Proton hat keine
'''...'''
Saiten,(''',''')
wird also('' ',' '')
, was irgendwie keine Probleme verursacht. Es wertet zu aus''
, macht zu(''',''')!=','
bewertenTrue
.Python hat diese Zeichenfolgen, wird also
(''',''')
nur','
so(''',''')!=','
ausgewertetFalse
.Python 2 verwendet die Bodenteilung für Ganzzahlen,
1/2>0
ist also in Python 2 falsch und in Python 3 wahr.quelle
1//1;print(int(input())**(2+(1/2>0)+((''',''')!=',')));quit()
und anschließend Sprachen wie JavaScript hinzufügen5 Sprachen, 107 Bytes
Perl: A000035
Die Verwendung
=
als Trennzeichen fürs///
Mittel , die wir einfach Code ausschließen können wir nicht wollen, und die Verwendung)
als Trennzeichen fürq{}
Mittel nachprint
ingq
in allen anderen Sprachen, können wir arbeiten nur<>
direkt, ohne Besorgnis erregend.Probieren Sie es online!
Ruby: A001477
In Ruby
//
ist tatsächlich/
(dividieren durch)/.../
(Regex-Übereinstimmung), so lange der Regex beendet und in eine Zahl umgewandelt wird, können wir sicher durch ihn dividieren.__id__
kürzer ist als.to_s.ord
wir uns, dann in nur wollen den Rest des Codes nicht enthalten'
s, Satzq
zugets
undprint
die anderen mit allen ihm.Probieren Sie es online!
Python 2: A005843
Verwenden Sie den Standardtrick, um 2 von 3 zu unterscheiden, und schließen Sie Dinge ein, die wir nicht wollen,
"""
und kommentieren Sie sie.Probieren Sie es online!
Python 3: A008585
Probieren Sie es online!
JavaScript (ES6-Browser): A000027
Für JS war es ziemlich einfach, das Vorhandene nicht wiederzuverwenden
print
und sich für SpiderMonkey zu entscheiden, aber das könnte auch möglich sein.quelle
6 Sprachen: Kubisch 5/6/7/8/9/10,
444032 BytesDurchgestrichen 44 ist immer noch regulär 44; (
Dies druckt:
Erläuterung:
Probieren Sie es online! (Kubisch 6x6x6)
quelle