Divinacci ( OEIS )
Lakukan urutan Fibonacci tetapi alih-alih menggunakan:
f(n) = f(n-1)+f(n-2)
Menggunakan:
f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2)))
Untuk input n
, output istilah ke-n, program Anda seharusnya hanya memiliki 1 input.
14 istilah pertama (0-diindeks, Anda dapat 1-indeks; sebutkan yang Anda gunakan):
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...
Anda dapat memilih apakah atau tidak untuk menyertakan terkemuka 0. Bagi mereka yang melakukan: pembagi dari 0
yang []
untuk tujuan tantangan ini.
Ini kemenangan kode-golf terendah-hitungan byte ...
Infinity
jika Anda mau.Jawaban:
05AB1E , 9 byte
Cobalah online!
Penjelasan
sumber
Mathematica,
4540 byteFungsi terkait pembagi Mathematica
Divisors
,DivisorSum
danDivisorSigma
semuanya tidak terdefinisi untuk n = 0 (memang demikian), jadi kita mulai darif(1) = f(2) = 1
dan tidak mendukung input0
.Mendefinisikannya sebagai operator alih-alih menggunakan fungsi yang tidak disebutkan namanya tampaknya dua byte lebih lama:
sumber
±
1 byte dalam pengkodean yang didukung Mathematica.$CharacterEncoding
pada mesin Windows adalahWindowsANSI
, yaitu CP 1252.)Perl 6 , 58 byte
Cobalah online!
sumber
Haskell , 55 byte
Cobalah online!
Diindeks satu.
sumber
Python 2 , 76 byte
Cobalah online!
Sangat lambat.
sumber
MATL,
1615 byteSolusi ini menggunakan pengindeksan berbasis 0.
Cobalah di MATL Online
Penjelasan
sumber
Jelly ,
109 byteCobalah online!
Terima kasih untuk Dennis untuk -1.
sumber
0
implisit?¡
dan yang lainnya hanya akan mencoba mengambil argumen dari mana-mana, bahkan dengan sebuahƓ
? Itu sangat tidak terduga ...¡
et al. ambil argumen baris perintah terakhir dan, jika tidak ada, bacalah baris dari STDIN.Python 3 ,
888381 byteCobalah online!
Tidak termasuk
0
sumber
Haskell ,
6460 byteCobalah online!
sumber
PHP , 97 byte
Cobalah online!
PHP , 101 byte
Cobalah online!
sumber
Pari / GP , 39 byte
Berdasarkan jawaban Mathematica dari Martin Ender .
Cobalah online!
sumber
R, 81 byte
1-diindeks, dan mengecualikan 0 pada awal urutan. Nol itu memberi saya banyak kesulitan untuk diterapkan, karena builtin
numbers::divisors
tidak menanganinya dengan baik.Sisanya adalah versi modifikasi dari fungsi rekursif standar yang mengimplementasikan urutan fibonacci.
sumber