Rozważ następującą sekwencję numerów:
Wymienia wszystkie ułamki binarne w przedziale jednostkowym .
(Aby ułatwić to wyzwanie, pierwszy element jest opcjonalny: Możesz go pominąć i rozważyć, że sekwencja zaczyna się od 1/2).
Zadanie
Napisz program (pełny program lub funkcję), który ...
Wybierz jedno z tych zachowań:
- Wejście n, wyjście n-ty element sekwencji (indeksowane 0 lub indeksowane 1);
- Wprowadź n, wyślij pierwsze n elementów sekwencji;
- Nic nie wpisuj, wypisz nieskończoną sekwencję liczb, którą możesz brać jeden po drugim;
Reguła
- Twój program powinien co najmniej wspierać pierwsze 1000 pozycji;
- Możesz wybrać wyświetlanie liczb dziesiętnych lub ułamków (wbudowane, pary całkowite, łańcuchy) według własnego uznania;
- Wejście / Wyjście jako cyfry binarne nie jest dozwolone w tym pytaniu;
- To jest golf-golf , wygrywanie najkrótszych kodów;
- Standardowe luki zabronione.
Przypadki testowe
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
Przykłady te oparte są na sekwencji z indeksowaniem 0, w tym z wiodącym 0. Konieczne będzie dostosowanie danych wejściowych w celu dopasowania rozwiązania.
Czytaj więcej
- OEIS A006257
- Problem z Józefem Flawiuszem: . (Poprzednio M2216)
- 0, 1, 1, 3, 1, 3, 5, 7, 1, 3, 5, 7, 9, 11, 13, 15, 1, 3, 5, ...
- OEIS A062383
- n > 0 a n = 2 ⌊ l o g 2 n + 1 ⌋ a n = 2 a ⌊ n : dla , lub .
- 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, ...) wylicza wszystkie ułamki binarne w przedziale jednostkowym [0, 1). - Fredrik Johansson, 14 sierpnia 2006 r
"1/2" "1/4" "1/8"...
take
później możesz n elementów z niej.
int
s, lub double
w języku / implementacji, w której double
używany jest format binarny IEEE ? Mam nadzieję, że nie masz na myśli, że musiałeś parsować ciąg ASCII, jeśli chcemy wziąć liczbę całkowitą? Normalne typy liczb całkowitych są binarne w językach takich jak C. Czy masz na myśli, że wejście / wyjście nie może być tablicą lub ciągiem liczb całkowitych lub zer / jedynek ASCII?