色のパレットを作ろうとしています。
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!となる。
おお、順列。
で、すべてのパターンを書き出すプログラムってどう書くのでしょう、、
ちょっと頭をひねってみます。
コメントを残す