繰り返しを使って組み合わせを取得する

2024/02/13に公開

5つから2つを取得する組み合わせ

実装

arr = collect('a':'e')

for i ∈ 1:length(arr), j ∈ i+1:length(arr)
    @show arr[i], arr[j]
end

結果

meiji@penguin:~/ocha$ julia macha.jl 
(arr[i], arr[j]) = ('a', 'b')
(arr[i], arr[j]) = ('a', 'c')
(arr[i], arr[j]) = ('a', 'd')
(arr[i], arr[j]) = ('a', 'e')
(arr[i], arr[j]) = ('b', 'c')
(arr[i], arr[j]) = ('b', 'd')
(arr[i], arr[j]) = ('b', 'e')
(arr[i], arr[j]) = ('c', 'd')
(arr[i], arr[j]) = ('c', 'e')
(arr[i], arr[j]) = ('d', 'e')

5つから3つを取得する組み合わせ

実装

arr = collect('a':'e')

for i ∈ 1:length(arr), j ∈ i+1:length(arr), k ∈ j+1:length(arr)
    @show arr[i], arr[j], arr[k]
end

結果

meiji@penguin:~/ocha$ julia macha.jl 
(arr[i], arr[j], arr[k]) = ('a', 'b', 'c')
(arr[i], arr[j], arr[k]) = ('a', 'b', 'd')
(arr[i], arr[j], arr[k]) = ('a', 'b', 'e')
(arr[i], arr[j], arr[k]) = ('a', 'c', 'd')
(arr[i], arr[j], arr[k]) = ('a', 'c', 'e')
(arr[i], arr[j], arr[k]) = ('a', 'd', 'e')
(arr[i], arr[j], arr[k]) = ('b', 'c', 'd')
(arr[i], arr[j], arr[k]) = ('b', 'c', 'e')
(arr[i], arr[j], arr[k]) = ('b', 'd', 'e')
(arr[i], arr[j], arr[k]) = ('c', 'd', 'e')

Discussion