Divinacci ( OEIS )
Führe die Fibonacci-Sequenz durch, anstatt:
f(n) = f(n-1)+f(n-2)
Verwenden:
f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2)))
Für eine Eingabe von n
, geben Sie den n-ten Term aus, Ihr Programm sollte nur 1 Eingabe haben.
Die ersten 14 Begriffe (0-indiziert, Sie können 1-indizieren; geben Sie an, welche Sie verwendet haben):
0 | 0 # Initial | []
1 | 1 # Initial | [1] => 1
2 | 1 # [] + [1] | [1] => 1
3 | 2 # [1] + [1] | [1,2] => 3
4 | 4 # [1] + [1,2] | [1,2,4] => 7
5 | 10 # [1,2] + [1,2,4] | [1,2,5,10] => 18
6 | 25 # [1,2,4] + [1,2,5,10] | [1,5,25] => 31
7 | 49 # [1,2,5,10] + [1,5,25] | [1,7,49] => 57
8 | 88 # [1,5,25] + [1,7,49] | [1, 2, 4, 8, 11, 22, 44, 88] => 180
9 | 237 # [1,7,49] + [180] | [1, 3, 79, 237] => 320
10 | 500 # [180] + [320] | [1, 2, 4, 5, 10, 20, 25, 50, 100, 125, 250, 500] => 1092
11 | 1412 # [320] + [1092] | [1, 2, 4, 353, 706, 1412] => 2478
12 | 3570 # [1092] + [2478] | [1, 2, 3, 5, 6, 7, 10, 14, 15, 17, 21, 30, 34, 35, 42, 51, 70, 85, 102, 105, 119, 170, 210, 238, 255, 357, 510, 595, 714, 1190, 1785, 3570] => 10368
13 | 12846 # [2478] + [10368] | [1, 2, 3, 6, 2141, 4282, 6423, 12846] => 25704
Etc...
Sie können wählen, ob Sie die führende 0 einschließen möchten oder nicht. Für diejenigen, die dies tun: Die Teiler von 0
sind []
für den Zweck dieser Herausforderung.
Es ist Code-Golf mit der niedrigsten Byte-Anzahl gewinnt ...
Infinity
wenn Sie möchten.Antworten:
05AB1E , 9 Bytes
Probieren Sie es online!
Erläuterung
quelle
Mathematica,
45-40BytesMathematicas Divisor bezogenen Funktionen
Divisors
,DivisorSum
undDivisorSigma
alle sind nicht definiert für n = 0 (Recht), so dass wir aus startenf(1) = f(2) = 1
und unterstützen keine Eingabe0
.Die Definition als Operator anstelle einer unbenannten Funktion scheint zwei Byte länger zu sein:
quelle
±
1 Byte in einer von Mathematica unterstützten Codierung enthalten ist.$CharacterEncoding
Windows-Computer istWindowsANSI
CP 1252.)Perl 6 , 58 Bytes
Probieren Sie es online!
quelle
Haskell , 55 Bytes
Probieren Sie es online!
Einindexiert.
quelle
Python 2 , 76 Bytes
Probieren Sie es online!
Lächerlich langsam.
quelle
MATL,
1615 BytesDiese Lösung verwendet eine 0-basierte Indizierung.
Probieren Sie es bei MATL Online aus
Erläuterung
quelle
Gelee ,
109 BytesProbieren Sie es online!
Danke an Dennis für -1.
quelle
0
war implizit?¡
und andere werden einfach versuchen, von überall einen Streit anzunehmen , auch mit einemƓ
? Das ist ziemlich unerwartet ...¡
et al. Nehmen Sie das letzte Befehlszeilenargument und lesen Sie, wenn es keine gibt, eine Zeile von STDIN.Python 3 ,
888381 BytesProbieren Sie es online!
Schließt das aus
0
quelle
Haskell ,
6460 BytesProbieren Sie es online!
quelle
PHP , 97 Bytes
Probieren Sie es online!
PHP , 101 Bytes
Probieren Sie es online!
quelle
Pari / GP , 39 Bytes
Basierend auf der Mathematica-Antwort von Martin Ender .
Probieren Sie es online!
quelle
R, 81 Bytes
1-indiziert und schließt die 0 am Anfang der Sequenz aus. Diese Null bereitete mir große Schwierigkeiten bei der Implementierung, da das eingebaute
numbers::divisors
System damit nicht gut zurechtkommt.Der Rest ist eine modifizierte Version der rekursiven Standardfunktion, die die Fibonacci-Sequenz implementiert.
quelle