順列

色のパレットを作ろうとしています。
HTMLベースなのでRGBの3要素となり、単純に3つの入れ子になったループを8回とかずつ回してみました。
こんな感じです。

 

 

for($r = 0; $r < 8; $r++){
	for($g = 0; $g < 8; $g++){
		for($b = 0; $b < 8; $b++){
			$color = sprintf("#%02x%02x%02x", $r*36, $g*36, $b*36);
			printf("<div class=\"rect\" style=\"background-color : %s\"></div>\n", $color);
		}
	}
}


それなりにキレイなのですが、ループの並び順を$g→$b→$rとしてみたところ、また違った印象となりました。

ブラウザで見るとこんな感じです(注:たぶん重いです)

3要素あるということは恐らく9パターンの並び順があるということで、、えーと、こういうのなんて言ったか思い出せません。数列?違う、そう、順列だったという事でGoogle様+wikipedia様。

n 個の異なった要素の中から m 個の相異なる要素を選び出した順列の個数(総数)はnPm と表され、、、、

特にn 個の異なった要素の中から n 個全て選び出した順列の個数はnPn =n!となる。

おお、順列。
で、すべてのパターンを書き出すプログラムってどう書くのでしょう、、

ちょっと頭をひねってみます。


コメントを残す

メールアドレスが公開されることはありません。

+ 22 = 32