Divinacci ( OEIS )
Wykonaj sekwencję Fibonacciego, ale zamiast używać:
f(n) = f(n-1)+f(n-2)
Posługiwać się:
f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2)))
Dla wejścia n
, wyślij n-ty termin, twój program powinien mieć tylko 1 wejście.
Pierwsze 14 haseł (indeksowane 0, możesz indeksować 1; stan, którego użyłeś):
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...
Możesz wybrać, czy dołączyć wiodące 0. Dla tych, którzy to robią: dzielniki 0
są []
dla celów tego wyzwania.
Jest to gra w golfa o najniższym numerze bajtów wygrywa ...
Infinity
jeśli chcesz.Odpowiedzi:
05AB1E , 9 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Matematyka,
4540 bajtówFunkcje związane dzielnik Mathematica jest
Divisors
,DivisorSum
iDivisorSigma
wszystkie są niezdefiniowane n = 0 (słusznie), więc zaczniemy odf(1) = f(2) = 1
i nie obsługują wejście0
.Zdefiniowanie go jako operatora zamiast używania funkcji bez nazwy wydaje się dłuższe o dwa bajty:
źródło
±
1 to bajt w kodowaniu obsługiwanym przez Mathematica.$CharacterEncoding
komputerów z systemem Windows toWindowsANSI
, tj. CP 1252.)Perl 6 , 58 bajtów
Wypróbuj online!
źródło
Haskell , 55 bajtów
Wypróbuj online!
Jeden indeksowany.
źródło
Python 2 , 76 bajtów
Wypróbuj online!
Śmiesznie powolne.
źródło
MATL,
1615 bajtówTo rozwiązanie wykorzystuje indeksowanie oparte na 0.
Wypróbuj w MATL Online
Wyjaśnienie
źródło
Galaretka ,
109 bajtówWypróbuj online!
Dzięki Dennis za -1.
źródło
0
było ukryte?¡
i inni będą po prostu starali się spierać zewsząd, nawet zƓ
? To dość nieoczekiwane ...¡
i in. weź ostatni argument wiersza poleceń i, jeśli nie ma, odczytuje wiersz ze STDIN.Python 3 ,
888381 bajtówWypróbuj online!
Nie obejmuje
0
źródło
Haskell ,
6460 bajtówWypróbuj online!
źródło
PHP , 97 bajtów
Wypróbuj online!
PHP , 101 bajtów
Wypróbuj online!
źródło
Pari / GP , 39 bajtów
Na podstawie odpowiedzi Mathematica Martina Endera .
Wypróbuj online!
źródło
R, 81 bajtów
1 indeksowany i wyklucza 0 na początku sekwencji. To zero sprawiło mi wiele problemów do wdrożenia, ponieważ wbudowane
numbers::divisors
nie radzi sobie z tym dobrze.Reszta to zmodyfikowana wersja standardowej funkcji rekurencyjnej, która implementuje sekwencję Fibonacciego.
źródło