Geben Sie bei einer nicht negativen Ganzzahl n >= 0
für immer die Folge von Ganzzahlen aus x_i >= 3
, die Palindrome in genau n
verschiedenen Basen sind b
, in denen sich die Basis befinden kann 2 <= b <= x_i-2
.
Dies ist im Grunde die Umkehrung von OEIS A126071 , wo Sie ausgeben, welche Indizes in dieser Sequenz den Wert haben n
. Es ist ein bisschen anders, weil ich es so geändert habe, dass Sie Basen ignorieren b = x_i-1, x_i, x_i+1
, da die Ergebnisse für diese Basen immer gleich sind (die Werte sind immer Palindrome oder immer nicht). Auch der Offset ist unterschiedlich.
x_i
auf Zahlen beschränkt >= 3
für jeden , so dass der erste Ausdruck des Ergebnisses n
ist A037183 .
Beachten Sie, dass das Ausgabeformat flexibel ist, die Zahlen jedoch gut abgegrenzt werden sollten.
Beispiele:
n seq
0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ...
1 5 7 8 9 12 13 14 22 23 25 29 35 37 39 41 43 49 ...
2 10 15 16 17 18 20 27 30 31 32 33 34 38 44 ...
3 21 24 26 28 42 45 46 50 51 54 55 56 57 64 66 68 70 ...
4 36 40 48 52 63 65 85 88 90 92 98 121 128 132 136 138 ...
5 60 72 78 84 96 104 105 108 112 114 135 140 156 162 164 ...
10 252 400 420 432 510 546 600 648 784 800 810 816 819 828 858 882 910 912 1040 1056 ...
Also für n=0
, erhalten Sie die Ausgabe dieser Herausforderung (ab 3
), da Sie Zahlen erhalten , die Palindrome in sind n=0
Basen.
Für n=1
, 5
ist ein Palindrom in der Basis 2
, und das ist die einzige Basis , 2 <= b <= (5-2)
dass es in ein Palindrom ist. 7
Ist ein Palindrom in der Basis 2
, und das ist die einzige Basis , 2 <= b <= (7-2)
dass es in ein Palindrom ist. Etc.
Wenn Ihre Sprache keine unendliche Ausgabe unterstützt, können Sie eine andere Ganzzahl z
als Eingabe verwenden und die ersten z
Elemente der Sequenz oder alle Elemente kleiner als ausgeben z
. Was auch immer du bevorzugst. Bitte geben Sie an, welche Sie in Ihrer Antwort verwendet haben, wenn dies der Fall ist.
quelle
n
Basen sein, nichtn
oder mehr Basen?n
ist also die Menge der ganzen Zahlen>=3
.Antworten:
Gelee , 18 Bytes
Probieren Sie es online aus! - Der Online-Interpreter hat eine Zeitüberschreitung von 60 Sekunden und löscht dann die Ausgabe (es sei denn, er verfügt über eine zwischengespeicherte Kopie). Offline druckt er nacheinander.
Wie?
Wertet Zahlen von
n
oben aus und druckt sie aus, wenn sie in der Reihenfolge vorliegen. Beachten Sie, dass die erste Zahl in einer Ausgabe größer ist alsn
sonst, da der Bereich von sonstb
nicht groß genug ist, sodass der Prozess nicht mit Seed versehen werden muss3
. Beachten Sie auch, dass die Anzahl der Palindrome von Basis 2 bis einschließlich x i -2 nur zwei weniger beträgt als die Anzahl der Palindrome von Basis 1 bis x .quelle
Mathematica,
8071 BytesVielen Dank an JungHwan Min für das Speichern von 9 Bytes!
(
∞
ist das Drei-Byte-Zeichen U + 221E.) Reine Funktion, die eine nichtnegative Ganzzahl als Eingabe verwendet.i~IntegerReverse~Range[2,i-2]
erstellt eine Liste der Umkehrungen der Zahli
in allen Basen von2
bisi-2
;Length[...~Cases~i]
zählt dann, wie viele dieser Umkehrungen wieder gleich sindi
.#!=...||Echo@i
Wird stillschweigend angehalten, wenn diese Anzahl nicht der Eingabe entspricht, und wird wiederholt,i
wenn sie der Eingabe entspricht. Diese Prozedur ist in eine einfache Endlosschleife eingebettet.quelle
Echo@i
Begriff wird nicht ausgewertet, wenn das erste Argument lautetTrue
. Kann ich dies zu Tipps zum Golfen in Mathematica hinzufügen ?Do[...,{i,3,∞}]
ist kürzer als(i=2;While[1>0,... ++i ...])
undCases
würde stattdessen funktionierenPosition
. -9 Bytes:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
Cases
funktioniert gut anstelle vonPosition
. Aber ich habe dieDo
Konstruktion getestet und sie funktioniert bei mir nicht, aber ich habe keine Ahnung warum nicht. Aus irgendeinem Grund werden diei
Werte nicht eingefügt - ich erhalte Fehler wie"Range specification in Range[2,-2+i] does not have appropriate bounds."
. (Und das Einfügen einesPrint[i];
Verifiziertes, demi
keine Werte zugewiesen wurden.) Irgendwelche Ideen?,
und{
(wahrscheinlich etwas mit dem SE-System zu tun). Das bricht den Code, weil die Zeichen als Variable betrachtet werden. Ich hoffe das hat es nicht:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
EDIT: Hat es noch. Hier ist ein Pastebin-LinkPyth,
211918 BytesDies sollte theoretisch funktionieren. Es funktioniert einwandfrei, wenn ich die Endlosschleife durch eine endliche ersetze (z. B.
JQFbr3 50*`bqJlf_IjbTr2tb
3 bis 50, versuchen Sie es hier ), aber der Pyth-Interpreter weiß nicht, wann oder wie er eine buchstäblich unendliche Ausgabe drucken soll.Erläuterung:
quelle
Perl 6 , 90 Bytes
Versuch es
quelle
Bash + Unix-Dienstprogramme,
134132 ByteProbieren Sie es online aus!
Die Eingabe wird als Argument übergeben. Die Ausgabe ist auf stdout.
Wenn Sie dies normal ausführen, wird jeweils eine Nummer in der unendlichen Reihenfolge angezeigt.
Wenn Sie dies in TIO versuchen, wird so viel von der Ausgabe angezeigt, wie sie generiert hat, wenn nach 60 Sekunden eine Zeitüberschreitung auftritt.
quelle
Python 2, 132 Bytes
Probieren Sie es online aus
Dem TIO-Programm wurde eine Fußzeile hinzugefügt, sodass Sie nicht 1 Minute warten müssen, bis das Programm eine Zeitüberschreitung aufweist, bevor die Ausgabe angezeigt wird.
quelle