小编典典

相同数量的0和1的二进制数

algorithm

当我解决欧拉项目问题#15时,我意识到可以通过从头到尾的路线组合方式来解决。生成的路由始终具有相同大小的正确选择或向下选择(或0和1),正确的路由始终具有相同的数量0和1。因此,二进制字中具有相同数量0和1s的数字的数量为1位长度的C(2,1),长度为2位的“
C(4,2)”“” 4位的“ C(6,3)…”

现在出现我的问题:是否有一个函数可以解决数字是否具有相同的0和1数量?我猜想它更像是一个逻辑函数,我不想迭代所有数字或使用正则表达式(这比迭代更糟)。

**另一个问题是关于“平衡”值之间的增长和间隔?


阅读 405

收藏
2020-07-28

共1个答案

小编典典

作为后续保罗的r答案,存在
式为中央二项式系数的简化,参见http://mathworld.wolfram.com/CentralBinomialCoefficient.html

p = n!/(((n / 2)!)²= 2 n / 2(n-1)!! /(n / 2)!

k!是“双阶乘”,这意味着您在计算时会跳过其他所有数字:k!= k (k-2)(k-4)* …(只要因子为正)。

为了计算,很多数字将被抵消(同时计算分子和分母时可以使用gcd)

2020-07-28