Dies ist ein Bullen-und-Räuber Herausforderung kann der Räuber Thread gefunden werden hier .
Ihre Aufgabe ist es, Code zu schreiben, der eine OEIS-Sequenz ausgibt und den Namen der Sequenz im Code ( A______
) enthält sowie eine zweite separate Sequenz ausgibt, wenn der Name der Sequenz im Code in den Namen der zweiten Sequenz geändert wird.
Hier ist ein Beispiel in Haskell, das für A000217 und A000290 funktioniert .
f x|last"A000217"=='0'=x^2|1>0=sum[1..x]
Sie müssen dann eine der beiden Sequenzen aufdecken und den Code, der die zweite Sequenz geheimhält. Räuber werden versuchen, herauszufinden, was die verborgene Sequenz ist. Wenn ein Räuber feststellen kann, wie Ihre Sequenz lautet (oder eine andere Sequenz, die den Kriterien entspricht), ist Ihre Antwort geknackt. Wenn dies in einer Woche nach dem Posten Ihrer Antwort nicht der Fall ist, können Sie Ihre Antwort als sicher markieren und die beabsichtigte Lösung zur Überprüfung offenlegen. Sichere Antworten können nicht geknackt werden.
Input-Output
Von hier genommen
Ihr Code kann eine Funktion oder ein vollständiges Programm sein, das n über eine Standardeingabemethode annimmt und den n- ten Term der Sequenz ausgibt, wie durch den bereitgestellten Index auf der OEIS-Seite indiziert.
Sie müssen alle Werte unterstützen, die in den OEIS-b-Dateien für diese Sequenz angegeben sind. Jede Zahl, die nicht in den b-Dateien enthalten ist, muss nicht unterstützt werden.
Wertung
Ihre Punktzahl ist die Anzahl der Bytes in Ihrem Code, wobei weniger Bytes besser sind.
quelle
Antworten:
Python 3, 59 Byte, A162626 , vom Weizen-Assistenten geknackt
Dies
istsollte unmöglich sein, nicht wahr?quelle
Python 3 , 62 Bytes, A017016 ( Gebrochen )
Probieren Sie es online!
quelle
Japt , 13 Bytes ( geknackt )
Es gibt (mindestens) eine andere Lösung, wenn jemand anders dagegen vorgehen möchte.
Probieren Sie es online
A000012
Erläuterung
quelle
(sum_of_numbers_in_oeis(excluding 'A') + 1)%4
. : DMATL ,
3029 Bytes ( geknackt )A077430
Probieren Sie es online!
-1 Byte dank @Sanchises
quelle
I
1 Byte ersetzen .I
l
(eins) undO
(null) sollten Sie fast nie ein Leerzeichen in Ihren MATL-Programmen verwenden müssen. Beachten Sie in diesem Zusammenhang auch Tabelle 7, die viele nützliche vordefinierte Konstanten enthält (beachten Sie jedoch, dass z. B.4X2Z%
eine Kurzform verwendet wird1Z%
)C #, 28 Bytes ( geknackt )
Funktioniert mit A000290 .
Ein einfacher Einstieg.
Probieren Sie es online!
quelle
Python 2, 43 Bytes, A000079 ( Gebrochen )
Probieren Sie es online aus
quelle
C #, 75 Bytes, ( geknackt )
A000244
Probieren Sie es online!
quelle
% 2
- das Programm kann also buchstäblich nur zwei Dinge tun , abhängig vom Ergebnis: eins für0
und eins für1
. Also habe ich eine ungerade Zahl an ihre Stelle gesetzt, und die Herausforderung hat sich selbst gebrochen.Python 2 , 53 Bytes, A000012 [geknackt]
Probieren Sie es online!
quelle
Python 3, 65 Bytes, A000027, geknackt
Yay verrückte Arithmetik!
quelle
n=12
was richtig aussieht, aber das Ergebnis wird um einen Index abweichen. Habe ich einen Käfer geknackt oder bin auf einen sehr cleveren roten Hering hereingefallen?a(n) = floor(n/2)
; Die aufgeführte Sequenz beginnt mit 0. Dies ist jedoch die beabsichtigte Lösung.Smalltalk, 148 Bytes, sicher!
A018253
Nimmt eine ganze Zahl als Eingabe, die Reihenfolge ist 1-basiert.
quelle
Haskell, 226 Bytes, sicher!
Nicht sicher, ob schlau oder hässlich, vielleicht beides ...
Das berechnet jetzt A001906 , aber es sollte in der Lage sein, viele Sequenzen zu generieren.
Probieren Sie es online!
Lösung: A131078
Sie fragen sich, ob dies zu schwierig war oder niemand es versuchte?
o 1
biso 6
sind die Ziffern der Seriennummer,m
ist eine Liste von Operationen.l
ist eine rekursiv definierte unendliche Liste mit den ersten beiden Werten, die aus der Seriennummer abgeleitet wurden, und den verbleibenden Werten, die aus den vorherigen beiden Werten unter Verwendung einer festen Operation aus berechnet wurdenm
. Im Fall von A001906 kann die Definition auf vereinfacht werden(flip(+))
ist (normalerweise) dasselbe wie(+)
und wir erhalten eine bekannte (aber nicht die kürzeste) Definition der Fibonacci-Zahlen. Dieses Rekursionsschema könnte A001906 direkt berechnen, dies erfordert jedoch eine kompliziertere Operation als die inm
. Ein weiteres Beispiel: Die Verwendung der Startwerte1
und2
und der Operation(*)
ergibt die Serie A000301 . Es wird von unserem Code berechnet, wenn die Seriennummer durch ersetzt wird?103206
.Schließlich
f
indiziert die Funktion die Listel
, jedoch erst nach einer gewissen Transformation der Eingabe. Bei A001906 reduziert sich der Mittelteil auf(*)2
, so dass wir die Fibonacci-Zahlen nur an geraden Positionen erhalten. Es wird der richtige Teilflip const 1
, der die Identitätsfunktion darstellt und nicht weiter stört.Für die Lösung werden
A131078
die Ausgangswertel
sind1
und0
, und der Betrieb istflip const
, der lässtl
sein1,0,1,0,...
. Der mittlere Teil vonf
wird(flip div 4)
zu1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,...
. Dies sah nach einer netten Antwort aus, aber dann sah ich, dass A131078 bei beginntn=1
, also habe ich den rechten Teil von hinzugefügtf
, der hierflip(-)1
abgezogen werden soll.Meine Idee war es, es ein wenig zu verschleiern, indem ich
m
Ziffern aus den Seriennummern verwende und darin indiziere. Dann wurde es mehr verschleiert (komplizierte Begriffe), damit es funktioniert (vielleicht habe ich nicht lange genug nach Alternativen gesucht). und dann wurde es noch mehr verschleiert (rechter Teil vonf
), damit es wirklich funktioniert. Trotzdem denke ich, dass ein paar Vermutungen und Versuche es geknackt haben könnten.quelle
0
. Das ist in Ordnung, denn es beginnt erst bei1
! Ab1
sollte auch ein Teil der "Division durch Null" -Fehler entfernt werden. Ich bin überrascht von Beispielen, die für immer laufen. Vielleicht schafft die Indexumwandlung in diesen Fällen sehr große Werte ...dc , 52 bytes, geknackt
Dieser funktioniert mit A000217 :
Probieren Sie es online!
quelle
Python 3.6, 114 Bytes, geknackt
A005843
g(n)
Gibt den n-ten Wert der Sequenz für n> = 0 zurück.random.choices(s,k)
ist neu in Python 3.6 und gibtk
Elemente zurück , dies
mit "Ersetzen" ausgewählt wurden.quelle
Chip , 67 Bytes, geknackt von Yimin Rong
A000012 . Ein bisschen frech, ja.
Probieren Sie es online!
Verwendet Bytes für I / O, also war ich nett und baute einen Bashy / Pythony-Wrapper.
.
quelle