虫食い算
こんな問題を見かけました(クイズ分かる方いませんか? -下の問題分かる方いませんか?■■■■×4=■- 数学 | 教えて!goo).
■■■■×4=■■■■■
■に4以外の数字(0〜9まで)を1つずつ入れ式を完成させよ
これを解くのにperlでこんなスクリプトをでっち上げてみました.4だけにしないで,2から9まで探索しましょう(1のときに題意を満たさないのは当然なのでさきに排除します).
for $x (2..9){ for (1000..9999) { print "$_ * $x = ",$_*$x,"\n" if join("",sort(split(//,$_.$x.$_ * $x))) eq "0123456789"; }}
掛け算の式から「掛ける記号」「等号」を外して昇順ソートした文字列が「0123456789」になるかということをチェックしてるだけです.ここもっと綺麗にできないかなとは思いますが,これが一番素直なようにも思えます.
1をかけて
結果は
5694 * 3 = 17082 6819 * 3 = 20457 6918 * 3 = 20754 8169 * 3 = 24507 9168 * 3 = 27504 3907 * 4 = 15628 7039 * 4 = 28156 9127 * 4 = 36508 5817 * 6 = 34902 3094 * 7 = 21658 4093 * 7 = 28651 9304 * 7 = 65128 9403 * 7 = 65821
13個.案外あるものです.数学的につぶしていくなるとどうなるんでしょうね.ひたすら場合分けして消去することになりそうです.