Ruby で順列を求める
A, B, C, D, Eの5人から4人を選んで一列に並べる場合の並び方はいくつ?
いわゆる順列の問題。Rubyにはpermutationメソッドがあるので、これを使って
簡単に求められる。
https://ref.xaio.jp/ruby/classes/array/permutation
# 5人から4人を選んで一列に並べる並べ方 member = ['A', 'B', 'C', 'D', 'E'] p member.permutation(4).count #120
A, B, C, D, Eの5人から4人を選んで一列に並べる。ただし、Aは2番目に、 Bは4番目になれない。このときの並べ方は何通り?
# A, B, C, D, Eの5人から4人を選んで一列に並べる。ただし、Aは2番目に、 # Bは4番目になれない。このときの並べ方 member = ['A', 'B', 'C', 'D', 'E'] count = 0 member.permutation(4) do |arr| count += 1 unless arr[1] == 'A' || arr[3] == 'B' end p count #78
permutationの実装はこちら https://apidock.com/ruby/Array/permutation