しいたげられたしいたけ

空気を読まない 他人に空気を読むことを要求しない

ツイッターに流れてきたパズルに関する補遺(その1)

またしても、この問題の話です。

3桁以上のn桁の整数において、
最上位桁を取り出し一桁の数字と見て、残りのn-1桁に掛けた結果と、
最下位桁の一桁の数字を、残りをn-1桁の数字と見て掛けた結果が、
一致する数にはどんなものがあるか?

具体的には111、222、333… 1111、2222、3333… といったゾロ目、

あるいは100、200、300… 1000、2000、3000…といったキリ番の数字を「自明な解」と呼ぶとしたら、

自明でない解には、3桁の場合

164(1×64=16×4=64)
195(1×95=19×5=95)
265(2×65=26×5=130)
498(4×98=49×8=392)

 の4つ、

4桁の場合

1664(166×4=1×664= 664)
1995(199×5=1×995= 995)
2665(266×5=2×665=1330)
4847(484×7=4×847=3388)
4998(499×8=4×998=3992)
6545(654×5=6×545=3270)
7424(742×4=7×424=2968)

の7つと、きわめて少数しかないというのが前回までの話でした。

 

弊ブログではこれらの解を求めるのにこれまでExcelを使ってきましたが、5桁以上の解を求めるにはExcelではしんどいので、プログラムを使うことにしました。

今、うちのパソコンでとっさに動く処理系というと Python くらいしかありません。

プログラミングなんてしばらくやっていなかったから少し手こずりましたが、作ってみると、次の3行で済んでしまいました。こんなことなら最初からExcelではなくPythonを使えばよかったと思わないでもないですが、こういうことは、やってみないと気づかないものです。

ただし、もっとスマートに書くことができるかも知れません。

n = 2
for i in range(10**n,10**(n+1)):
    if (i//10**n)*(i-i//10**n*10**n) == i//10*(i%10):
        print(i,i//10*(i%10))

 画面から Anaconda Prompt にコピペで動作するはずです。

f:id:watto:20200721212331p:plain

そして「n=」に続く数字を変えるだけで、パソコンの計算能力の限り何桁でも解を求めることができるはずです。

私のマシンの場合は、n=8 くらいになると結果が返るのにかなり待たされるようになりましたが。

n =4~8 で見つかった非自明解のみを示します。カッコ内は所与の計算を行った結果です。

n = 4(5桁)

16664(6664)
19995(9995)
26665(13330)
43243(12972)
49998(39992)
86486(51888)

 n = 5(6桁)

166664(66664)
199995(99995)
266665(133330)
484847(339388)
499998(399992)
654545(327270)
742424(296968)

 n = 6(7桁)

1666664(666664)
1999995(999995)
2666665(1333330)
4999998(3999992)
9878048(7902432)

  n = 7(8桁)

14285713(4285713)
16666664(6666664)
19999995(9999995)
26666665(13333330)
28571426(17142852)
34615384(13846152)
41025641(4102564)
43243243(12972972)
45714285(22857140)
48484847(33939388)
49999998(39999992)
59523808(47619040)
64285714(25714284)
65454545(32727270)
69230768(55384608)
74242424(29696968)
75384615(37692305)
82051282(16410256)
83116883(24935064)
86486486(51891888)

  n = 8(9桁)

166666664(66666664)
199999995(99999995)
266666665(133333330)
499999998(399999992)

 結果だけを眺めると、奇妙な特徴に気づきます。桁数が増えるにしたがって検証が必要な数は当然ながら増えますが、それにしては新たに登場する非自明解の数はごく限られています。

 n = 7(8桁)の突出も、気になるところです。

もう一つ気づくことは(前回エントリーにも追記しましたが)

164 が解であれば 1664、16664、166664…も解であること、
195 が解であれば 1995、19995、199995…も解であること、
265 が解であれば 2665、26665、266665…も解であること、
498 が解であれば 4998、49998、499998…も解であること、

また、

4847 が解であれば 484847、48484847…も解であること、

6545 が解であれば 654545、65454545…も解であること、

43243 が解であれば 43243243…も解であること、

といった特徴です。

この特徴が常に成り立つことは、初等的に証明できそうです。その内容は次のエントリーに書きます。

スポンサーリンク