と、これくらいなら手作業でも出来るし、プログラミングする場合でも、安直にforループを3つネストさせれば出来る。 でも「20個から異なる4個を選んだときの組み合わせを全て書き出せ」なんて言われたら、手作業では煩わしい。20C4 = 4845 通りの組み合わせになりますからな。安直にforループを20個ネストさせれば出来るけれど、それでは汎用性が皆無。 で、こんな関数を作ってみたのですが、どうか。とりあえず PHP5 で書いてみた。単純な再帰アルゴリズムなので、すぐ別の言語にも書き換えられますね。 <?php function getCpattern( $source, $m ){ /* 引数 $source:選択元要素の配列 */ /* 引数 $m:$source から異なる $m 個を選ぶ */ $n = sizeof($source); return ptn( $source, $n,
![異なるn個から異なるm個を選び出す場合の、全てのパターンを得たい。](https://cdn-ak-scissors.b.st-hatena.com/image/square/bac7f5410f2aba20343388b85c1c67fa25e55f16/height=288;version=1;width=512/https%3A%2F%2Ffreefielder.jp%2Fentrance%2Fface.png)