假设我有十进制格式的数字: 5
它的二进制版本是: 00101
我想写一个带十进制数的函数 x
并返回与原始数字差异(以二进制形式)的所有其他十进制数字:
所以对于上面的例子,邻居是:
10101 01101 00111 00001 00100
Run Code Online (Sandbox Code Playgroud)
相应的小数是:
21 13 7 1 4
Run Code Online (Sandbox Code Playgroud)
我想要一个计算效率高的解决方案,即使我说了一百万个数字也不需要很长时间.
这可能吗?
ale*_*laz 10
我不知道试验和错误是如何让我在这里,但它看起来有效,除非我搞砸了二进制和小数:
bin_neighs = function(x, n) bitwXor(x, (2 ^ (0:(n - 1))))
bin_neighs(5, 5)
#[1] 4 7 1 13 21
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |