Definamos f (n) como el número máximo de regiones obtenidas uniendo n puntos alrededor de un círculo por líneas rectas. Por ejemplo, dos puntos dividirían el círculo en dos piezas, tres en cuatro, así:
Asegúrese de que cuando dibuja las líneas, no tiene una intersección de más de dos líneas.
Tu tarea
Dado un número n , imprime f (n) .
Casos de prueba:
n | f(n)
---+-----
1 | 1
2 | 2
3 | 4
4 | 8
5 | 16
6 | 31
7 | 57
8 | 99
9 | 163
Puedes ver más aquí .
El uso de generadores de secuencia incorporados no está permitido.
Recuerde, este es el código de golf , por lo que gana el código con el menor número de bytes.
Si ustedes quieren la fórmula, aquí está:
MATL , 7 bytes
Pruébalo en línea! O verificar todos los casos de prueba .
Explicación
Utiliza la fórmula (de OEIS): a ( n ) = C ( n −1, 4) + C ( n −1, 3) + ... + C ( n −1, 0)
fuente
Jalea , 6 bytes
Pruébalo en línea! o verificar todos los casos de prueba .
Cómo funciona
fuente
Java 7
5047 bytesUtiliza la fórmula (de OEIS)
fuente
> <> ,
2726 + 3 = 29 bytes3 bytes agregados para la bandera -v
Pruébalo en línea!
Un byte guardado gracias a Martin Ender .
fuente
R, 25 bytes
scan()
toma la entradan
de stdin, que se pasa achoose
junto con0:2*2
. Este último término es0
para2
(es decir[0, 1, 2]
) multiplicado por 2, lo que es[0, 2, 4]
. Dado quechoose
se vectorizado, este calculan choose 0
,n choose 2
,n choose 4
, y regresa en una lista. Finalmente,sum
devuelve la suma de estos números, sorprendentemente.No creo que esto pueda jugarse más, ¡pero estaría muy feliz de que me demuestren lo contrario!
fuente
dc, 21
Versión de RPN de la respuesta de @ Neil .
Prueba de salida:
fuente
J, 9 bytes
Usa la fórmula
C(n-1, 2) + C(n, 4) + n = C(n, 0) + C(n, 2) + C(n, 4)
.Uso
Explicación
fuente
05AB1E , 6 bytes
Pruébalo en línea!
Explicación
Implementación directa de la fórmula OEIS
c(n,4) + c(n,2) + c(n,0)
fuente
En realidad , 6 bytes
Pruébalo en línea!
Explicación:
fuente
Scala, 35 bytes
Utiliza la misma fórmula que la respuesta java de numberknot .
fuente
Octava , 27 bytes
Esta es una función anónima.
Pruébalo en Ideone .
Explicación
Esto se basa en la fórmula OEIS a ( m ) = C ( m −1, 4) + C ( m −1, 3) + ... + C ( m −1, 0), donde C son coeficientes binomiales. La función de distribución binomial.
para k = 4, n = m −1 y p = 1/2 da 2 m −1 a ( m ).
fuente
@(m)sum(binopdf(0:2:4,m,.5)*2^m)
TI-89 Basic, 57 bytes
Retroceso a los viejos tiempos.
fuente
)
el últimonCr
?