Considere la siguiente secuencia de números:
Enumera todas las fracciones binarias en el intervalo unitario .
(Para facilitar este desafío, el primer elemento es opcional: puede omitirlo y considerar que la secuencia comienza con 1/2).
Tarea
Escribir un programa (programa completo o una función) que ...
Elija uno de estos comportamientos:
- Entrada n, salida enésimo elemento de la secuencia (indexado 0 o indexado 1);
- Entrada n, salida primeros n elementos de la secuencia;
- No ingrese nada, envíe la secuencia de números infinitos que puede tomar de uno en uno;
Regla
- Su programa debería admitir al menos los primeros 1000 elementos;
- Puede elegir generar decimales o fracciones (incorporado, par entero, cadenas) como desee;
- La entrada / salida como dígitos binarios no está permitida en esta pregunta;
- Este es el código de golf , los códigos más cortos ganan;
- Lagunas estándar no permitidas.
Casos de prueba
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
Estos ejemplos se basan en una secuencia indexada en 0 con el 0 inicial incluido. Debería ajustar la entrada para adaptar su solución.
Lee mas
- 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 n > 0 , a n = 2 ⌊ l o g 2 n + 1 ⌋ o a n = 2 a ⌊ n.
- 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 las fracciones binarias en el intervalo unitario [0, 1). - Fredrik Johansson, 14 de agosto de 2006
"1/2" "1/4" "1/8"...
take
n elementos de ella más tarde.
int
s, o a double
en un idioma / implementación donde double
usa el formato IEEE binary64 ? Espero que no te refieras a tener que analizar una cadena ASCII si queremos tomar una entrada entera. Los tipos enteros normales son binarios en lenguajes como C. ¿O quiere decir que la entrada / salida no puede ser una matriz o cadena de enteros o ceros / unos ASCII?