Julia 如何迭代从所有可能的b位数组中选择n个b位数组的所有方法?

Julia 如何迭代从所有可能的b位数组中选择n个b位数组的所有方法?,julia,combinatorics,Julia,Combinatorics,有2^bb位数组。有“2^bchoosen”选择nb位数组的不同方法。我想重复所有“2^bchoosen”选择nb位数组的不同方式。显然,只有当b和n都很小时,这才可能在现实的时间范围内实现 我如何在Julia中做到这一点?您可以使用组合来生成各种组合。并且,根据您要查找的内容,您可以使用string或bitstring将整数转换为二进制表示: julia> string(123, base=2) "1111011" julia> bitstring(123) "000000000

2^b
b位数组。有“
2^b
choose
n
”选择
n
b位数组的不同方法。我想重复所有“
2^b
choose
n
”选择
n
b位数组的不同方式。显然,只有当
b
n
都很小时,这才可能在现实的时间范围内实现


我如何在Julia中做到这一点?

您可以使用
组合来生成各种组合。并且,根据您要查找的内容,您可以使用
string
bitstring
将整数转换为二进制表示:

julia> string(123, base=2)
"1111011"

julia> bitstring(123)
"0000000000000000000000000000000000000000000000000000000001111011"
为了简洁起见,我将继续使用
string
。下面是一个针对
b=3
n=2
情况的完整计算示例:

julia> using Combinatorics

julia> r = 0:2^3-1
0:7

julia> b = string.(r, base=2)
8-element Array{String,1}:
 "0"  
 "1"  
 "10" 
 "11" 
 "100"
 "101"
 "110"
 "111"

julia> combs = combinations(b, 2);

julia> foreach(println, combs)
["0", "1"]
["0", "10"]
["0", "11"]
["0", "100"]
["0", "101"]
["0", "110"]
["0", "111"]
["1", "10"]
["1", "11"]
["1", "100"]
["1", "101"]
["1", "110"]
["1", "111"]
["10", "11"]
["10", "100"]
["10", "101"]
["10", "110"]
["10", "111"]
["11", "100"]
["11", "101"]
["11", "110"]
["11", "111"]
["100", "101"]
["100", "110"]
["100", "111"]
["101", "110"]
["101", "111"]
["110", "111"]