Divinacci ( OEIS )
Realice la secuencia de Fibonacci pero en lugar de usar:
f(n) = f(n-1)+f(n-2)
Utilizar:
f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2)))
Para una entrada de n
, salida del enésimo término, su programa solo debe tener 1 entrada.
Primeros 14 términos (indexado a 0, puede indexar a 1; estado que utilizó):
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...
Puede elegir si desea incluir o no los 0. principales. Para aquellos que sí: los divisores de 0
son []
para el propósito de este desafío.
Es el código de golf más bajo de conteo de bytes gana ...
Infinity
si lo desea.Respuestas:
05AB1E , 9 bytes
Pruébalo en línea!
Explicación
fuente
Mathematica,
4540 bytesLas funciones relacionadas con el divisor de Mathematica
Divisors
,DivisorSum
yDivisorSigma
todas están indefinidas para n = 0 (con razón), por lo que comenzamos desdef(1) = f(2) = 1
y no admitimos entrada0
.Definirlo como un operador en lugar de usar una función sin nombre parece tener dos bytes más:
fuente
±
sea 1 byte en una codificación compatible con Mathematica.$CharacterEncoding
máquinas con Windows esWindowsANSI
, es decir, CP 1252.)Perl 6 , 58 bytes
Pruébalo en línea!
fuente
Haskell , 55 bytes
Pruébalo en línea!
Un índice.
fuente
Python 2 , 76 bytes
Pruébalo en línea!
Ridículamente lento.
fuente
MATL,
1615 bytesEsta solución utiliza indexación basada en 0.
Pruébalo en MATL Online
Explicación
fuente
Jalea ,
109 bytesPruébalo en línea!
Gracias a Dennis por -1.
fuente
0
estaba implícito?¡
y otros solo intentarán tomar una discusión de todas partes, incluso con unƓ
? Eso es bastante inesperado ...¡
et al. tome el último argumento de la línea de comandos y, si no hay ninguno, lee una línea de STDIN.Python 3 ,
888381 bytesPruébalo en línea!
Excluye el
0
fuente
Haskell ,
6460 bytesPruébalo en línea!
fuente
PHP , 97 bytes
Pruébalo en línea!
PHP , 101 bytes
Pruébalo en línea!
fuente
Pari / GP , 39 bytes
Basado en la respuesta de Mathematica de Martin Ender .
Pruébalo en línea!
fuente
R, 81 bytes
1 indexado y excluye el 0 al comienzo de la secuencia. Ese cero me dio muchos problemas para implementar, porque el incorporado
numbers::divisors
no lo maneja bien.El resto es una versión modificada de la función recursiva estándar que implementa la secuencia de Fibonacci.
fuente