Vamos definir f (n) como o número aximal de regiões obtido pela união de n pontos em torno de um círculo por linhas retas. Por exemplo, dois pontos dividiriam o círculo em duas partes, três em quatro, assim:
Certifique-se de que ao desenhar as linhas, você não tenha uma interseção com mais de duas linhas.
Sua tarefa
Dado um número n , imprima f (n) .
Casos de teste:
n | f(n)
---+-----
1 | 1
2 | 2
3 | 4
4 | 8
5 | 16
6 | 31
7 | 57
8 | 99
9 | 163
Você pode ver mais aqui .
O uso de geradores de sequência internos não é permitido.
Lembre-se, isso é código-golfe , portanto o código com o menor número de bytes vence.
Se vocês querem a fórmula, aqui está:
MATL , 7 bytes
Experimente online! Ou verifique todos os casos de teste .
Explicação
Usa a fórmula (de OEIS): a ( n ) = C ( n −1, 4) + C ( n −1, 3) + ... + C ( n −1, 0)
fonte
Gelatina , 6 bytes
Experimente online! ou verifique todos os casos de teste .
Como funciona
fonte
Java 7,
50.47 bytesUsa a fórmula (do OEIS)
fonte
> <> ,
2726 + 3 = 29 bytes3 bytes adicionados ao sinalizador -v
Experimente online!
Um byte salvo graças a Martin Ender .
fonte
R, 25 bytes
scan()
pega a entradan
de stdin, que é passadachoose
junto com0:2*2
. Este último termo é0
a2
(ou seja[0, 1, 2]
) multiplicado por dois, o que é[0, 2, 4]
. Desdechoose
é vetorizado, Isso calculan choose 0
,n choose 2
,n choose 4
, e retorna-los em uma lista. Finalmente,sum
retorna a soma desses números, surpreendentemente.Eu não acho que isso possa ser jogado ainda mais, mas eu ficaria muito feliz em provar que está errado!
fonte
dc, 21
RPNVersão do resposta de @ Neil .
Saída de teste:
fonte
J, 9 bytes
Usa a fórmula
C(n-1, 2) + C(n, 4) + n = C(n, 0) + C(n, 2) + C(n, 4)
.Uso
Explicação
fonte
05AB1E , 6 bytes
Experimente online!
Explicação
Implementação direta da fórmula OEIS
c(n,4) + c(n,2) + c(n,0)
fonte
Na verdade , 6 bytes
Experimente online!
Explicação:
fonte
Scala, 35 bytes
Usa a mesma fórmula da resposta java do numberknot .
fonte
Oitava , 27 bytes
Esta é uma função anônima.
Experimente em Ideone .
Explicação
Isso é baseado na fórmula OEIS a ( m ) = C ( m -1, 4) + C ( m -1, 3) + ... + C ( m -1, 0), onde C são coeficientes binomiais. A função de distribuição binomial
para k = 4, n = m -1 e p = 1/2 dá 2 m -1 a ( m ).
fonte
@(m)sum(binopdf(0:2:4,m,.5)*2^m)
TI-89 Basic, 57 bytes
Retrocesso aos velhos tempos.
fonte
)
o últimonCr
?