たとえば、4要素の長さの配列があります。3つのダイジェットを使用するときに可能な組み合わせを計算する方法を知りたいです。
例えば:
3 6 2
3 6 8
6 2 8
8 3 2
私の配列は:3 6 2 8
4つの可能性がありますが、プログラムでそれらを数えるにはどうすればよいですか?
さて、あなたが実際に探しているのは、候補から要素Choose(n,k)
を選択する方法の数であるようです。k
n
その公式は基本的にChoose(n,k) = n! / (k! * (n-k)!)
その背後にある理論的根拠は次のとおりです。
アイテムを並べ替える方法の数n
(n!の可能性)そして最初に選択しますk
。k
選択した後は、最初のアイテム(k!
可能性)と最後のn-k
アイテム(可能性)の順序は気にしません(n-k)!
。
あなたの例でChoose(4,3) = 4!/(3!*1!) = 4
は、予想通り。