Considere a seguinte sequência numérica:
Enumera todas as frações binárias no intervalo de unidades .
(Para facilitar esse desafio, o primeiro elemento é opcional: você pode ignorá-lo e considerar que a sequência começa com 1/2.)
Tarefa
Escreva um programa (programa completo ou função) que ...
Escolha um destes comportamentos:
- Entrada n, elemento de saída enésimo da sequência (indexado 0 ou indexado 1);
- Entrada n, gera os primeiros n elementos da sequência;
- Não introduza nada, produza a sequência numérica infinita que pode ser tirada uma a uma;
Regra
- Seu programa deve pelo menos suportar os primeiros 1000 itens;
- Você pode optar por imprimir decimais ou frações (interno, par inteiro, seqüências de caracteres) como desejar;
- Entrada / Saída como dígitos binários não é permitida nesta pergunta;
- Este é o código-golfe , os códigos mais curtos vencem;
- Falhas padrão não permitidas.
Casos de teste
input output
1 1/2 0.5
2 1/4 0.25
3 3/4 0.75
4 1/8 0.125
10 5/16 0.3125
100 73/128 0.5703125
511 511/512 0.998046875
512 1/1024 0.0009765625
Esses exemplos são baseados na sequência indexada em 0, com o 0 inicial incluído. Você precisaria ajustar a entrada para ajustar sua solução.
consulte Mais informação
- OEIS A006257
- Problema de Josefo: . (Anteriormente M2216)
- 0, 1, 1, 3, 1, 3, 5, 7, 1, 3, 5, 7, 9, 11, 13, 15, 1, 3, 5, ...
- OEIS A062383
- : para , ou .
- 1, 2, 4, 4, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 32, 32, 32, ...
A006257 (n) / A062383 (n) = (0, 0,1, 0,01, 0,11, 0,001, ...) enumera todas as frações binárias no intervalo de unidade [0, 1). - Fredrik Johansson, 14 de agosto de 2006
"1/2" "1/4" "1/8"...
take
n elementos dela mais tarde.
int
s, ou a double
em uma linguagem / implementação em que double
use o formato IEEE binary64 ? Espero que você não queira dizer que foi necessário analisar uma seqüência de caracteres ASCII se quisermos obter uma entrada inteira? Tipos inteiros normais são binários em idiomas como C. Ou você quer dizer que a entrada / saída não pode ser uma matriz ou sequência de números inteiros ou zeros / uns ASCII?