请考虑以下数字顺序:
它枚举单位间隔中的所有二进制分数。
(为简化此挑战,第一个元素是可选的:您可以跳过它,并考虑序列以1/2开头。)
任务
编写一个程序(完整的程序或功能),以...
选择以下行为之一:
- 输入n,输出序列的第n个元素(0索引或1索引);
- 输入n,输出序列的前n个元素;
- 不输入任何内容,输出可以一一取整的无限数序列;
规则
- 您的程序至少应支持前1000个项目;
- 您可以根据需要选择输出小数或分数(内置,整数对,字符串)。
- 此问题中不允许输入/输出为二进制数字;
- 这是代码高尔夫球,最短的代码获胜;
- 不允许出现标准漏洞。
测试用例
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,32,32,32,...
A006257(n)/ A062383(n)=(0,0.1,0.01,0.11,0.001,...)枚举单位间隔[0,1)中的所有二进制分数。-Fredrik Johansson,2006年8月14日
"1/2" "1/4" "1/8"...
take
以后可以从中使用n个元素即可。
int
的对的函数,或者不能使用使用IEEE binary64格式double
的语言/实现编写返回a的函数?我希望您不是要想接受整数输入就必须解析ASCII字符串吗?普通的整数类型在诸如C之类的语言中是二进制的。或者您是说输入/输出不能是整数或ASCII零/一的数组或字符串?double