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