こんなパズルがあるそうです。
「3桁÷2桁=2桁あまり2桁」となる計算で、1から9までの数字をすべて使う場合を見つけろ。
例を挙げると「589 ÷ 46 = 12 あまり 37」。数字が9個ありますが1から9までの数字がすべて使われています。
このようなケースが他にもあるのですべて見つけろ、というわけです。
算数的、数学的に解けるのかもしれませんが、コンピューター的に解いてみました。つまり「しらみつぶし法」です。
JavaScriptで書きました。
for (a = 123; a <= 987; a++) {
for (b = 12; b <= 98; b++) {
c = Math.floor(a / b);
d = a % b;
as[0] = Math.floor(a / 100);
as[1] = Math.floor((a % 100) / 10);
as[2] = a % 10;
as[3] = Math.floor(b / 10);
as[4] = b % 10;
as[5] = Math.floor(c / 10);
as[6] = c % 10;
as[7] = Math.floor(d / 10);
as[8] = d % 10;
if (checker(as) == 0) {
document.write(a + " ÷ " + b + " = ");
document.write(c + " あまり " + d + "<br>");
}
}
}
function checker(rs) {
rs.sort();
for (h = 0; h < 9; h++) {
if (rs[h] != h + 1) {
return (1);
}
}
return (0);
}
パターンとしては割られる数は123から987まで、割る数は12から98まで、と高々10万通り。
それらで片端から計算してチェックするという方法です。
実行はほぼ一瞬で終わります。
実行結果
589 ÷ 46 = 12 あまり 37
687 ÷ 54 = 12 あまり 39
746 ÷ 59 = 12 あまり 38
763 ÷ 49 = 15 あまり 28
793 ÷ 48 = 16 あまり 25
796 ÷ 58 = 13 あまり 42
853 ÷ 67 = 12 あまり 49
856 ÷ 49 = 17 あまり 23
859 ÷ 64 = 13 あまり 27
865 ÷ 49 = 17 あまり 32
873 ÷ 69 = 12 あまり 45
874 ÷ 65 = 13 あまり 29
879 ÷ 24 = 36 あまり 15
879 ÷ 36 = 24 あまり 15
892 ÷ 65 = 13 あまり 47
895 ÷ 67 = 13 あまり 24
967 ÷ 28 = 34 あまり 15
967 ÷ 34 = 28 あまり 15
975 ÷ 68 = 14 あまり 23
984 ÷ 56 = 17 あまり 32
987 ÷ 63 = 15 あまり 42
答は、全部で21通り、あるようです。
コメント
[…] 前に「3桁÷2桁=2桁あまり2桁」で1から9までの数字をすべて使うというパズルを取り上げましたが、今回の次の通り。 「4桁÷4桁=1桁(あまりゼロ)」となる計算で、1から9までの数字をすべて使う場合を見つけろ。 […]
[…] 前に「3桁÷2桁=2桁あまり2桁」で1から9までの数字をすべて使うというパズルを取り上げましたが、今回は次の通り。 […]