Dies ist eine Herausforderung für Bullen und Räuber . Der Räuberfaden ist da .
Eine interessante Frage zum Nachdenken ist die folgende:
Wenn ich eine Folge von Zahlen habe, wie viele muss ich angeben, bevor klar ist, über welche Folge ich spreche?
Wenn ich zum Beispiel über die positiven ganzen Zahlen in der Reihenfolge ab sprechen möchte , könnte ich sagen , aber ist das wirklich genug?
Ich habe eine Möglichkeit, diese Frage zu beantworten, und als Code-Golfer geht es um Code-Golf. Sie haben genügend Terme einer Sequenz angegeben, wenn der kürzeste Code, der diese Terme erzeugt, alle Terme der Sequenz erzeugt. Wenn wir dies in Form von Code-Golf betrachten, würde dies bedeuten, dass Sie genügend Testfälle bereitgestellt haben, so dass der kürzeste Code, der die Testfälle besteht, die gewünschte Aufgabe erfüllt.
Herausforderung
Diese Herausforderung ist eine Herausforderung für Bullen und Räuber . In welchen Cops Testfälle präsentieren und Räuber einen kürzeren Weg finden müssen, um andere Testfälle als die beabsichtigte Sequenz zu fälschen. Cops werden die folgenden Dinge präsentieren:
Ein Teil des Codes, der eine nicht negative Ganzzahl als Eingabe annimmt und eine Ganzzahl als Ausgabe erzeugt. Dieser Code definiert Ihre Sequenz. Ihr Code muss nicht 0 als Eingabe unterstützen, sondern 1 als kleinste Eingabe. Es sollte klar sein, ob dies in Ihrer Antwort der Fall ist.
Alle relevanten Plattform- oder Sprachanforderungen, die sich auf die Ausgabe auswirken können, z. B. die Größe von longint.
Eine Zahl , zusammen mit den ersten Begriffen der Sequenz, wie vom Code berechnet. Diese dienen als "Testfälle".
Sie werden aufgefordert, die Funktionsweise Ihrer Sequenz zu erläutern und OEIS zu verknüpfen, sofern vorhanden. Es ist jedoch Ihr Code, der die Sequenz und nicht die Beschreibung definiert.
Räuber werden ein Programm in derselben Sprache finden, das kürzer ist als das vorgestellte und alle Testfälle besteht (erzeugt die gleiche Ausgabe für die ersten Eingaben wie der Code des Polizisten). Der Code des Räubers muss sich auch in der Ausgabe vom Programm des Polizisten für eine Zahl unterscheiden, die größer als .
Polizisten müssen in der Lage sein, ihre eigenen Antworten zu knacken, bevor sie sie einreichen.
Nach einer Woche ein Polizist kann ihren Riss offenbart und markiert ihre Antwort als sicher. Als solche gekennzeichnete Antworten können nicht mehr geknackt werden.
Wertung
Die Antworten der Polizei werden nach der Anzahl der Bytes bewertet, wobei weniger Bytes besser sind. Gebrochene Antworten erzielen eine unendliche Punktzahl.
quelle
Antworten:
cQuents , 4 Bytes ( geknackt )
Probieren Sie es online!
Hier sind acht (
n=8
) Fälle:Code Erklärung:
Die Sequenz ist also
1,2,3,4,5 ...
, sie wird""
so verbunden, dass sie wird12345 ...
, und::
bedeutet, dass sie bis zur Eingabe gedruckt wird.quelle
Python 3 ,
6657 Bytes ( geknackt )von xnor
geknackt auch von Cat Wizard vor einer Bearbeitung geknackt
Probieren Sie es online!
Hallo! Hier ist eine Sequenz für zu knacken . Es gibt diese ersten 40 Elemente mit 0-Indexierung, es ist keine OEIS-Sequenzn = 40
quelle
Python 2 , 44 Bytes ( geknackt )
Probieren Sie es online!
Die Primzahlen. Welche Reihenfolge könnte reiner sein? Oder mehr übertrieben ? Ihr Ziel ist es, die ersten 50 Primzahlen für
n=1
zu produzierenn=50
.Der Code ist ein Wilson-Theorem- Generator, der genau von diesem Tipp kopiert wurde .
Die unterschiedlichen Werte für die alternative Reihenfolge sind nicht auf Maschineneinschränkungen wie Überläufe und Präzision zurückzuführen. Keine Bibliotheken von Drittanbietern.
Gebrochene von Arnauld, @PoonLevi und Herr Xcoder.
quelle
Wolfram Language (Mathematica) ,
3934 Bytes (Sicher)Probieren Sie es online!
Sieht einfach aus, die Lösung sollte schwierig sein.
1-indiziert und . Diese Sequenz ist im OEIS nicht verfügbar.n=99
Diese obige Liste ist gleich:
Hier ist eine Vorlage zur Überprüfung Ihrer Lösung: Probieren Sie es online aus!
Beabsichtigter Riss
quelle
Haskell , 29 Bytes (geknackt: 1 , 2 )
Probieren Sie es online!
Dies ist A093005 : .a ( n ) = n ≤ n2⌉
Testfälle für , das heißt :0 ≤ n ≤ 20
map a [0..20]
Geplante Lösung (20 Bytes)
Probieren Sie es online! Unterscheidet sich bei mit a ( 23 ) = 276 und b ( 23 ) = 253 .n = 23 a ( 23 ) = 276 b ( 23 ) = 253
Diese Funktion ist äquivalent zu . Dank der Obergrenze überlappen sich beide Funktionen für ganzzahlige Argumente im Bereich von 0 bis 22 :b ( n ) = n l e n ( 3 n) = n ≤ l o g10( 1 + 3n) ⌉ 0 22
Quelle
quelle
JavaScript (ES6), 12 Bytes ( geknackt )
Dieser ist ziemlich einfach.
Probieren Sie es online!
Dies ist A139275 :
Und gemäß den Herausforderungsregeln muss es darüber hinaus abweichen.
quelle
n=>8*n*n+n
unterscheidet sich fürn=94906273
, ist dies ein gültiger Riss?n=9
.|
statt+
)Malbolge, 10 Bytes
Beachten Sie, dass der Code mit einem Byte 0x14 (Gerätesteuerung 4) endet.
Probieren Sie es online!
Die zu knackende 0-indizierte Sequenz ist
[9, 19, 29]
.quelle
> <> , 276 Bytes ( geknackt )
Probieren Sie es online! Rufe dieses mit
-v n
auf, um das n-te Element (1-indiziert) zu erhalten.Probieren Sie es online! Rufen Sie mit
-v n
auf, um eine Liste von n-1 Elementen ab 1 zu erhaltenOnline Fischdolmetscher
Dies ist ein langer und komplexer OEIS A004000 .
quelle
n
(von der Frage geforderte) zu ergeben?Gelee , 6 Bytes , sicher!
Dies definiert eine mit Nullen indizierte Sequenz, wobei:
1,1,1,2,2,3,4,5,6,7,8,9,10,11,12,13
Probieren Sie es online! ( hier ist eine einwertige Version)
Dies ist derzeit nicht in der OEIS (obwohl A34138 als Riss funktionieren wird, wenn kurz genug)
Beabsichtigter Riss
quelle
JavaScript, 26 Bytes ( geknackt )
OEIS A007660
Ausgabe sind die ersten 6 Elemente mit einer Indexierung von 0 (1,1,2,3,7,22)
(etwas abweichend von dem, was OEIS als aufgeführt hat)
Erstellen Sie einfach eine einfach zu lösende Antwort, um die Dinge anzukurbeln
Probieren Sie es online!
quelle
JavaScript, 16 Bytes ( geknackt )
Erforderliche Eingaben für die Übereinstimmung sind 0,1,2,3,4.
Probieren Sie es online!
quelle
APL (Dyalog Unicode) ,
1715 BytesProbieren Sie es online!
Die ersten 13 Begriffe (1-basiert) sind:
Hinweis: Die vorgesehene Lösung verwendet eine der am wenigsten verwendeten integrierten Funktionen.
quelle
Schale , 5 Bytes ( geknackt von Jonathan Allan )
Probieren Sie es online!
Erläuterung
Lösung
quelle
JavaScript, 25 Bytes ( geknackt 21 Bytes)
Folge von 7,11,12,13,13, gefolgt von unendlichen 14s.
Beabsichtigte Lösung 22 Bytes:
Probieren Sie es online!
quelle
JavaScript, 22 Bytes ( geknackt )
Dies ist ein Index von 0, und Genauigkeit ist bis zu einer Eingabe von 15 erforderlich. Sie kann in OEIS nicht gefunden werden
Meine Lösung 20 Bytes
Probieren Sie es online!
quelle
> <> , 42 Bytes, geknackt
Probieren Sie es online!
Sequenz zum Knacken (0-indiziert):
101786, 5844, 19902
(nicht bei OEIS).Beabsichtigte Lösung als Referenz.
quelle
4
Perl 6 , 53 Bytes
Probieren Sie es online!
Anonymer Codeblock, der die 0-indizierte Kolakoski-Sequenz zurückgibt ( OEIS A000002 ). Die Lösungen müssen mit den ersten 130 Elementen übereinstimmen, sodass
n > 129
sie sich für einige von der Kolakoski-Sequenz unterscheiden.quelle
Pascal (FPC) , 86 Bytes ( geknackt )
Probieren Sie es online!
Meine ursprüngliche Lösung war
aber r_64 hat es noch besser gemacht !
quelle