http://d.hatena.ne.jp/yaneurao/20070813
工夫ゼロで書いてみました。
恥さらしもいいところですね。
<?php set_time_limit(0); for ($i = 1; $i <= 99; $i++) { echo "N={$i},A=" . getA($i) . "<br>"; } function getA($n, $a = 1) { $cnt = 1; for ($i = 0; $i < 2; $i++) { for ($j = 0; $j < $a; $j++) { $set[] = $dice[$i][$j] = $cnt++ % 10; } } for ($i = 0; $i < $a; $i++) { for ($j = 0; $j < $a; $j++) { $set[] = $dice[0][$i] . $dice[1][$j]; $set[] = $dice[1][$j] . $dice[0][$i]; } } for ($i = 0; $i < $n; $i++) { if (array_search(++$i, $set) === false) { return getA($n, $a + 1); } } return $a; }