Schreiben Sie einen Code, der eine einzelne nicht negative ganze Zahl n verwendet und die n-te Potenz von Phi (ϕ, Goldener Schnitt, ungefähr 1,61803398874989) mit der gleichen Anzahl von Dezimalstellen wie die n-te Fibonacci-Zahl ausgibt .
Ihr Code muss für alle Eingaben bis zu mindestens 10 (55 Dezimalstellen) die richtige Ziffernfolge erzeugen. Die Ausgabe muss für Menschen lesbar sein. Sie können wählen, ob die letzte Ziffer auf den nächsten Wert gerundet oder der Wert abgeschnitten werden soll. Bitte geben Sie an, welchen Code Sie verwenden.
n und Ausgabe bis 10, abgerundet:
0 1
1 1.6
2 2.6
3 4.23
4 6.854
5 11.09016
6 17.94427190
7 29.0344418537486
8 46.978713763747791812296
9 76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174
n und Ausgabe bis 10, auf den nächsten Wert gerundet:
0 1
1 1.6
2 2.6
3 4.24
4 6.854
5 11.09017
6 17.94427191
7 29.0344418537486
8 46.978713763747791812296
9 76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174
Die 7. Fibonacci-Zahl ist 13, daher hat die Ausgabe für n = 7, ϕ 7 , 13 Dezimalstellen. Sie dürfen nachgestellte Nullen nicht abschneiden, die zu wenige Ziffern anzeigen würden. Siehe Ausgabe für 6 in der ersten Tabelle, die mit einer einzelnen Null endet, um die Dezimalgenauigkeit bei 8 Stellen zu halten.
Sagen Sie vielleicht als Bonus, welche höchste Zahl Ihr Programm korrekt ausgeben kann.
Antworten:
Gleichstrom, 26 Bytes
Aufgrund der anfänglichen Genauigkeit von 99 Stellen nach dem Komma funktioniert dies bei Eingabe 11 . Eine dynamische (oder höhere statische) Genauigkeit ist möglich, würde jedoch die Anzahl der Bytes erhöhen.
Testfälle
Wie es funktioniert
Da die gewünschte Ausgabe φ n ist , können wir die Fibonacci-Zahl F (n) mit geringem zusätzlichen Aufwand als ⌊φ n ÷ √5 + 0,5⌋ berechnen .
quelle
Mathematica, 50 Bytes
Grundlösung. Runden auf den nächsten Wert.
Überprüfen Sie immer noch den höchsten Wert, der nicht dazu führt, dass meinem Computer der Speicher ausgeht.Die Eingabe32
funktioniert, dauert jedoch 45 Minuten und verwendet 16 GB RAM. Bei unendlicher Zeit und Speicher kann dies jedoch theoretisch für jeden Wert ausgeführt werden.quelle