Definieren wir eine Folge von ganzzahligen Quadratwurzeln. Erstens ist a (1) = 1. Dann ist a (n) die kleinste positive ganze Zahl , die vorher nicht gesehen wurde
sqrt(a(n) + sqrt(a(n-1) + sqrt(... + sqrt(a(1)))))
ist eine ganze Zahl. Einige Beispiele:
a (2) ist 3, weil es die kleinste Ganzzahl sqrt(a(2) + sqrt(a(1))) = sqrt(a(2) + 1)
ist, die eine Ganzzahl ist, und 3 ist in der Sequenz zuvor noch nicht vorgekommen.
a (3) ist 2, weil es die kleinste Ganzzahl sqrt(a(3) + sqrt(a(2) + sqrt(a(1)))) = sqrt(a(3) + 2)
ist, die eine Ganzzahl ist, und 2 ist in der Sequenz zuvor noch nicht vorgekommen.
a (4) ist 7, weil sqrt(a(4) + 2)
es eine ganze Zahl ist. Wir konnten keine (4) = 2 haben, da 2 bereits in unserer Sequenz vorkamen.
Schreiben Sie ein Programm oder eine Funktion, die mit einem Parameter n eine Folge von Zahlen a (1) bis a (n) zurückgibt.
Die Sequenz beginnt 1,3,2,7,6,13,5, ....
Quelle dieser Sequenz ist diese Math.SE-Frage .
Ein Plot der ersten 1000 Elemente in der Sequenz:
Antworten:
Python 2 , 80 Bytes
Probieren Sie es online!
quelle
Haskell ,
10387 BytesSchrecklich ineffizient, aber nicht auf Gleitkomma-Arithmetik angewiesen. Hier
a(x) = sqrt(f(x)+a(x-1))
ist eine Hilfssequenz, die die Berechnung vereinfacht.Probieren Sie es online!
quelle
Python 2 , 87 Bytes
Probieren Sie es online!
-3 Danke an Herrn Xcoder .
-5 danke an ovs .
quelle
while n in s or(t+n)**.5%1>0
->while(n in s)+(t+n)**.5%1
MATL ,
3027 BytesProbieren Sie es online! Oder sehen Sie sich eine grafische Anzeige an (dauert eine Weile; Zeitüberschreitung bei Eingaben von mehr als ungefähr
60
).Erläuterung
quelle
Mathematica, 104 Bytes
Probieren Sie es online!
Die Reihenfolge der Quadratwurzeln ist ebenfalls sehr interessant ...
und gibt ein ähnliches Muster aus
Auch hier sind die Unterschiede der Hauptsequenz
quelle
Python 2 ,
1171151121029987 BytesProbieren Sie es online!
Verwendete die
t=(t+x)**.5
Logik aus Eriks Antwortquelle
JavaScript (ES7),
89827776 BytesDemo
Code-Snippet anzeigen
Formatiert und kommentiert
quelle
R ,
13810599 BytesProbieren Sie es online!
-33 Bytes mit Tfelds cleverem
sqrt()%%1
Trick in der while-Schleife-6 Bytes mit T anstelle von F
ursprüngliche Antwort, 138 Bytes:
Probieren Sie es online!
quelle
Schale , 21 Bytes
Probieren Sie es online!
Wie?
quelle