Рассмотрим следующую числовую последовательность:
Он перечисляет все двоичные дроби в единичном интервале .
(Чтобы облегчить эту задачу, первый элемент является необязательным: вы можете пропустить его и считать, что последовательность начинается с 1/2.)
задача
Напишите программу (полную программу или функцию), которая ...
Выберите один из следующих вариантов поведения:
- Введите n, выведите n-й элемент последовательности (0-индексированный или 1-индексированный);
- Введите n, выведите первые n элементов последовательности;
- Ничего не вводите, выводите бесконечную последовательность чисел, которую вы можете взять один за другим;
правило
- Ваша программа должна как минимум поддерживать первые 1000 элементов;
- Вы можете выводить десятичные дроби или дроби (встроенные, целочисленные пары, строки), как вам нравится;
- Ввод / вывод в виде двоичных цифр в этом вопросе не допускается;
- Это код-гольф , самые короткие коды выигрывают;
- Стандартные лазейки запрещены.
Testcases
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
Эти примеры основаны на 0-индексированной последовательности с включением 0 в начале. Вам нужно будет настроить вход для соответствия вашему решению.
Подробнее
- OEIS A006257
- Задача Иосифа: . (Ранее M2216)
- 0, 1, 1, 3, 1, 3, 5, 7, 1, 3, 5, 7, 9, 11, 13, 15, 1, 3, 5, ...
- OEIS A062383
- : для п > 0 , п = 2 ⌊ л о г 2 н + 1 ⌋ или п = 2 ⌊ п.
- 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, ...) перечисляет все двоичные дроби в единичном интервале [0, 1). - Фредрик Йоханссон, 14 августа 2006 г.
"1/2" "1/4" "1/8"...
take
n элементов из него позже.
int
s, или a double
в языке / реализации, где double
используется формат двоичных символов IEEE ? Надеюсь, вы не имеете в виду, нужно ли было анализировать строку ASCII, если мы хотим получить целочисленный ввод? Обычные целочисленные типы являются двоичными в таких языках, как C. Или вы имеете в виду, что ввод / вывод не может быть массивом или строкой целых или ASCII нулей / единиц?