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

标签 julia combinatorics

2^b b 位数组。有“2^b 选择n ”不同的选择n 的方式。 b 位数组。我想遍历所有“2^b 选择 n ”选择 n 的不同方式b 位数组。显然,这只有在 b 的实际时间范围内才有可能。和 n都很小。

我怎么能在 Julia 中做到这一点?

最佳答案

您可以使用 combinations来自 Combinatorics.jl生成各种组合。而且,根据您要查找的内容,您可以使用 stringbitstring将整数转换为二进制表示:

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"]

关于julia - 如何迭代从所有可能的 b 位数组中选择 n 个 b 位数组的所有方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59975122/

相关文章:

julia - 如何并行迭代两个数组

python - 如何构建一个 N*(N+1) 矩阵,其数量在 1~N*N 范围内且完全分布?

python - 计算 pandas 中列组合的总和,按行计算,输出文件具有所述组合的名称

node.js - JSON 文件中数据的所有可能组合

dataframe - 是否可以将选定的列设置为 julia 数据框中的索引?

sorting - Julia - 如何对数组进行排序并获取索引

java - 循环 i 和 j,其中 i != j

python - 用重复生成排列

julia - 在 Julia 中将数据集拆分为训练和测试

julia - julia 如何知道要使用什么路径分隔符和根目录?