给定N作为位数,K作为1的数量,如何生成包含K个和Nk零的所有二进制表示?
换句话说,我有:
N=4 //number of bits
K=2 //number of ones
Run Code Online (Sandbox Code Playgroud)
包含N位,K个和NK零的所有可能二进制值是:
1100
1010
1001
0110
0101
0011
Run Code Online (Sandbox Code Playgroud)
到目前为止我什么都没有.我不是要求代码.我只想问最好的方法吗?一个算法?伪代码?也许是讨论?
编辑:我要求代码/伪代码来解决问题...而不是数学公式......
还记得数学课的组合和排列吗?
谷歌它找到方程式,使用:http: //www.mathsisfun.com/combinatorics/combinations-permutations-calculator.html进行快速计算:)
这更像是一个数学问题。你正在寻找一个长度为 N 的字符串,其中 K 为 1。所以你得到了N choose K,N!/K!*(N-K)!如果没记错的话 -如果我错了,请其他人纠正!