Dies ist der Räuberfaden dieser Herausforderung
Die Bullen wählen eine OEIS- Sequenz und schreiben zwei vollständige Programme in zwei verschiedenen Sprachen, die das n-te Element in der Sequenz erzeugen, wenn sie über STDIN ein n erhalten. Die beiden Programme müssen Anagramme voneinander sein, dh, sie können aus den Buchstaben des anderen neu angeordnet werden.
Sie geben die OEIS-Nummer, den Quellcode und den Namen einer Sprache an, in der sie gesprochen wird.
Sie müssen ein Anagramm der Vorlage des ursprünglichen Polizisten finden, das in einer anderen Sprache als der vom Polizisten verwendeten ausgeführt wird. Um eine Antwort zu knacken, müssen Sie nur eine Sprache und ein Programm finden, die bzw. das die Sequenz erzeugt und ein Anagramm des Originals ist, nicht unbedingt die Antwort, über die der Cop nachgedacht hat.
Sie können nach Zeichencode ausgeben oder STDERR in Ihre Lösung aufnehmen, aber nur, wenn der Cop angegeben hat, dass seine versteckte Lösung dies tut. Die Dezimalausgabe an STDOUT ist immer ein gültiger Riss.
Auf diese Weise wird den Bullen der Anreiz gegeben, es anhand ihrer Symbolliste so schwer wie möglich zu machen, eine Sprache zu finden, die die Aufgabe erfüllt.
Wertung
Die Person mit den meisten Rissen ist der Gewinner dieses Abschnitts. Nur der erste Riss für jede Lösung zählt für die Punktzahl.
Bestenliste
Ein großes Dankeschön an alle, die an dieser Herausforderung teilgenommen haben.
Hier ist die Rangliste in ihrer jetzigen Form
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
quelle
Antworten:
05AB1E , 38 Bytes, Loovjo , A000290
Probieren Sie es online!
Sehr wahrscheinlich nicht die beabsichtigte Lösung, aber es funktioniert.
Erläuterung
quelle
1.0 is not a number
? Könnten Sie bitte näher darauf eingehen?is_number
prüft, ob die Nummer nur aus besteht0-9
. Da.
es sich nicht um eine Zahl handelt, wird sie falsch. Die Funktion könnte einenJolf, 15 Bytes, Adnan , A000290
Probieren Sie es hier aus! Auf jeden Fall nicht die beabsichtigte Lösung, aber hey, es funktioniert.
Erläuterung
quelle
05AB1E , 49 Byte, Weizen-Assistent , A000290
Eigentlich der gleiche Ansatz wie Emignas Crack: p.
Erläuterung:
Probieren Sie es online!
quelle
05AB1E , 35 Byte, Oliver , A000290
Cops sollten aufhören,
n^2
Herausforderungen in Python zu posten ...Probieren Sie es online!
Erläuterung
quelle
2sable , 7 Bytes, Kritixi Lithos , A005843
Code:
Erläuterung:
Probieren Sie es online!
quelle
Hexagony , 13 Bytes, Adnan , A002378
Probieren Sie es online!
Entfaltet:
Nicht 100% ob dies das Original ist, denn oben links
\
nicht verwendet wird.Das
<\>
sind nur Spiegel, das Programm ist also eigentlich ganz linear:quelle
V , 13 Bytes, DJMcMayhem , A002275
Probieren Sie es online!
Dies könnte die erste Lösung in der vom Autor beabsichtigten Sprache sein.
Erläuterung
quelle
This might be the first solution in the language the author intended.
Spot on. :)2sable, Conor O'Brien , A000290
Probieren Sie es online!
Ich weiß nicht, wie es funktioniert, es gibt wirklich nur ein Programm, das die Anforderungen erfüllt, und ich bin einfach gezwungen, die Sprache zu finden, in der es funktioniert.
Nachdem ich die Dokumente durchgesehen habe, kann ich mir eine Erklärung einfallen lassen:
quelle
Pyth , 26 Bytes, Steven H. , A023443
Code:
Versuchen Sie es online .
Relativ einfach:
quelle
Python 3, 118 Bytes, ETHproductions, A042545
Teste es auf Ideone .
Cop Vorlage
Was ist unterschiedlich
Die Cop-Übermittlung funktioniert in Python 3 aus zwei Gründen nicht.
Die Eingabefunktion von Python 2 wertet automatisch eine Eingabezeile aus, während das Gegenstück von Python 3 die Zeile nur als Zeichenfolge zurückgibt. Wir können einfach int aufrufen , um dies zu beheben.
print
war eine Anweisung in Python 2, aber es ist eine Funktion in Python 3. Dies bedeutet insbesondere, dass wir das Argument mit Klammern umgeben müssen.Das heißt, wir brauchen
int()
und()
, aber diese Zeichen sind nicht alle Teil des Kommentars. Das heißt, wir müssen einige Änderungen vornehmen.Statt der Fraktion s behalten wir den Überblick über 1 / s .
Die Initialisierung von s -
s=1/(801**.5-28)
- wirds=801**.5-28
gespeichert, die Zeichen werden gespeichert1/()
.Der Faktor von a [-1] bei der Aktualisierung von a -
int(s)
- wirdint(1/s)
, was die Zeichen kostet1/
.Das Update von s -
s=1/(s-int(s))
-s=1/s-1//s
kostet die Zeichen1//
, speichert aber die Zeichen(int())
.Die gespeicherten Zeichen
()(int())
decken die Zeichen ab, die wir zum Portieren des Codes nach Python 3 benötigten, aber das Erhalten dieser Zeichen kostet uns etwas1//
. Wir können//
dem Kommentar entnehmen , müssen ihn aber an1
anderer Stelle speichern .Eine Möglichkeit (die einzige?), Das Notwendige
1
zu speichern, besteht darin, das1
bei der Initialisierung von a mit zu ersetzen0==0
. Das kostet diese vier Zeichen, aber wir können00
dem Kommentar entnehmen .Bisher haben wir den folgenden Code.
Um eines der
=
jetzt "Schulden" wiederherzustellen , können wir die Initialisierung von s und a mit einer einzigen Zuweisung neu schreiben :s,a=801**.5-28,[0,0==0]
Zusätzlich spart dies a;
und kostet a,
, die dem Kommentar hinzugefügt und aus ihm entfernt werden können.Die Sekunde
=
kann gespeichert werden, indem die Eingabe nicht in einer Variablen gespeichert wird, dhrange(int(input()))
stattdessen geschrieben und die Zeichen in gespeichert werdeni=
. Wir verwenden i nach der Schleife als gut, aber das i - te Element von a ist nur die zweite von rechts, so dass wir ersetzen könneni
mit-2
. Aus dem gleichen Grund kanna[-2]
der Schleifenkörper mit ausgetauscht werdeni
.Wir haben jetzt eine Permutation in funktionierenden Python 3-Code:
Dieser Code funktioniert jedoch auch in Python 2! Eine Möglichkeit , dies zu fixieren ist zu ersetzen
print(a[-2])
mit(print(a[-2]),)
; Wir haben die Zeichen, die wir im Kommentar brauchen. Wie bereits erwähnt, ist print eine Funktion in Python 3, mit der das Tupel ( None ,) erstellt wird . Die print- Anweisung von Python 2 ist jedoch ein SyntaxError in einem Tupel-Literal.quelle
CJam, 39 Bytes, Milch , A000007
Probieren Sie es hier aus.
quelle
Pyth, 7 Bytes, Luis Mendo , A000217
Das Programm wird nach Aufforderung mit Fehler beendet
p
die richtige Antwort gedruckt wurde.Probieren Sie es hier online aus !
quelle
05AB1E , 12 Byte, Tuskiomi , A000012
Probieren Sie es online!
Erläuterung
quelle
05AB1E , 38 Bytes, Conor O'Brien , A000290
Probieren Sie es online!
Erläuterung
Dies basiert auf Emignas Riss hier .
quelle
05AB1E, 27 Byte, Boboquack , A000012
Probieren Sie es online aus
Wie es funktioniert:
quelle
CJam, 70 Bytes, Shebang , A000217
Probieren Sie es hier aus.
quelle
Konvex, 75 Bytes, Boboquack , A004526
Probieren Sie es online aus
Wie es funktioniert:
quelle
Dip , 9 Bytes, Kritixi Lithos
Bestimmt nicht die beabsichtigte Antwort.
Erläuterung:
quelle
Pip , 6 Bytes, DLosc , A000012
Ich dachte, ich würde zuerst den Esolang des OP ausprobieren ;-)
Probieren Sie es online aus.
quelle
05AB1E , 25 Byte, Mego , A000583
Code:
Erläuterung:
Probieren Sie es online!
quelle
Dip , 8 Bytes, Oliver , A000042
Erläuterung
Das Lustige ist, dass dies die beabsichtigte Sprache war! Dip ist ein Esolang von Oliver.
Testfälle und Ausführen von Dip über die Befehlszeile
quelle
2sable, 14 Bytes, Dopapp , A121377
Probieren Sie es online aus.
Wie es funktioniert (mehr oder weniger):
quelle
05AB1E , 4 Bytes, Oliver , A000012
Probieren Sie es online!
Dies ist eine Folge von
1
s.Dies gibt
1
unabhängig von der Eingabe aus.quelle
Dip , 5 Bytes, Oliver , A000012
Die Sequenz druckt nur
1
unabhängig von der Eingabe. Olivers Antwort druckt a1.0
. Dieses Programm druckt auch ein1.0
. Dies ist anscheinend die beabsichtigte Lösung.Erläuterung
Alternative Lösung (mit freundlicher Genehmigung von @milk)
Konvex , 5 Bytes
Probieren Sie es online!
Erläuterung
quelle
"1"
) nach allen[input]
Zeichen getrennt (da die Eingabe eine Zahl ist.