パーミュテーション(順列)
1.3
パーミュテーション(順列)を書いてみます。再帰で。
ちなみにパーミュテーションってなんじゃらほいから始まってるあたりがすでにだめだめ。数学的なお題は言葉や概念をそもそも知らなかったり、忘れたりしてるのでしんどい><
http://ja.wikipedia.org/wiki/%E9%A0%86%E5%88%97
#階乗を用意 def fact(n,r=n) if n==1 r else fact(n-1,r*(n-1)) end end #順列 def permutation(n,m) fact(n)/fact(n-m) end puts permutation(4,2) #=>12
そのものずばり、permutationというメソッドがあった。
#再帰使わない版 def permutation(n,m) (1..n).to_a.permutation(m).to_a.size end puts permutation(4,2) #=>12