すべての組合せをシートに出力したい
a1~a10を1以上5以下の整数とするとき、
a1+a2+a3+a4+a5+a6+a7+a8+a9+a10=20
となるような組み合わせは、
(5,5,3,1,1,1,1,1,1,1)→10!/(2!*7!) =360通り
(5,5,2,2,1,1,1,1,1,1)→10!/(2!*2!*6!)=1260通り
(5,4,4,1,1,1,1,1,1,1)→10!/(2!*7!) =360通り
(5,4,3,2,1,1,1,1,1,1)→10!/(6!) =5040通り
(5,4,2,2,2,1,1,1,1,1)→10!/(3!*5!) =5040通り
(5,3,3,3,1,1,1,1,1,1)→10!/(3!*6!) =840通り
(5,3,3,2,2,1,1,1,1,1)→10!/(2!*2!*5!)=7560通り
(5,3,2,2,2,2,1,1,1,1)→10!/(4!*4!) =6300通り
(5,2,2,2,2,2,2,1,1,1)→10!/(6!*3!) =840通り
(4,4,4,2,1,1,1,1,1,1)→10!/(3!*6!) =840通り
(4,4,3,3,1,1,1,1,1,1)→10!/(2!*2!*6!)=1260通り
(4,4,3,2,2,1,1,1,1,1)→10!/(2!*2!*5!)=7560通り
(4,4,2,2,2,2,1,1,1,1)→10!/(2!*4!*4!)=3150通り
(4,3,2,2,2,2,2,1,1,1)→10!/(2!*7!) =360通り
(4,2,2,2,2,2,2,2,1,1)→10!/(2!*7!) =360通り
(3,2,2,2,2,2,2,2,2,1)→10!/(8!) =90通り
(2,2,2,2,2,2,2,2,2,2)→10!/(10!) =1通り
で合計41,221通りだと思います。
ごの、41,221通りの組合せを、エクセルシートに
41,221行20列の範囲に漏れなく出力したいのですが、
VBAで上手いテクニックがあれば教えてください。
よろしくお願いいたします。
お礼
全くイメージがつかめなかったので、2進数といわれて なるほど!と納得しました。通りとか何乗などのイメージ しにくい計算は今までほとんど手をつけてこなかったので aokii様の回答を参考に色々勉強して行こうと思います。 自分の中でかなりな取っ掛かりになり、大変参考に なりました!aokii様有難う御座いました。
補足
先ほど自分でやっていて気付いたのですが、aokii様のおっしゃるとおりで、確実に32通り以上有りました^^;失礼致しました。 BBBABA等、かなり抜けてましたね!ごめんなさい。