先日、X(旧Twitter)を眺めていたところ、次のような投稿を見かけました。
https://x.com/nobanonch/status/2006172581125120289
内容を整理すると、次のような現象が紹介されています。
$33$ から $88$ までの整数の和は $\frac{(33+88) \times 56}{2} = 3388$
$33$ と $88$ をそのまま連結すると $3388$
$\Rightarrow$ 一致する
他には
$1$ から $5$ までの整数の和は $\frac{(1+5) \times 5}{2} = 15$
$1$ と $5$ をそのまま連結すると $15$
$\Rightarrow$ 一致する
などもこの性質を満たすことがX上では書かれていました。
一見すると単なる偶然のようにも見えますが、「開始する数」と「終了する数」の間に、どのような条件があればこの性質が成り立つのでしょうか。
本記事では、この現象を数学的に一般化し、さらにPythonを用いて解を全探索してみます。
開始する整数を$n$、終了する整数を$m(n< m)$とします。
また、$m$の桁数を$k$とします。すなわち$10^{k-1} \le m < 10^k$です。
このとき、題意の条件は
$$\text{(和)} = \text{(連結)}$$
と表せます。
左辺は等差数列の和の公式、右辺は$n$を$10^k$倍して$m$を足したものなので、次の等式が得られます。
$$\frac{(n + m)(m - n + 1)}{2} = n \cdot 10^k + m$$
これが今回解くべき基本方程式です。
この式を$m$についての二次方程式とみなして整理します。
両辺を2倍して展開すると
$$(m + n)(m - n + 1) = 2n \cdot 10^k + 2m$$
$$m^2 - n^2 + m + n = 2n \cdot 10^k + 2m$$
移項して整理すると
$$m^2 - m - (n^2 - n + 2n \cdot 10^k) = 0$$
ここで解の公式$m = \frac{-b \pm \sqrt{b^2 - 4ac}}{2}$を用います。$m > 0$であることから、正の符号を採用すると
$$m = \frac{1 + \sqrt{1 + 4(n^2 - n + 2n \cdot 10^k)}}{2}$$
ルートの中身(判別式)を$D$とおくと
$$D = 1 + 4n^2 - 4n + 8n \cdot 10^k$$
整理すると
$$D = (2n - 1)^2 + 8n \cdot 10^k$$
$m$が整数になるためには、次の2条件が必要です。
ここで、$D = (2n - 1)^2 + 8n \cdot 10^k$の形に注目します。
よって、奇数+偶数は奇数なので、$D$は常に奇数です。もし $D$が完全平方数であれば、その平方根 $\sqrt{D}$も必ず奇数になります。
したがって、分子$1 + \sqrt{D}$は「$1 + \text{奇数} = \text{偶数}$」となり、必ず2で割り切れます。
つまり、
$D$が完全平方数であり、かつ求まった$m$が$k$桁に収まる
ことだけを確認すれば、整数解が得られることが分かります。
手計算で$D$が平方数になる$n$を探すのは現実的ではありません。そこで、導出した条件を用いてPythonで全探索を行いました。
コードと詳細な結果は以下にまとめています。
ここでは、$m$の桁数$k \le 2$の場合に得られた結果を示します。
| k | n | m | Sum / Concat | Diff (m-n) |
|---|---|---|---|---|
| 1 | 1 | 5 | 15 | 4 |
| 1 | 2 | 7 | 27 | 5 |
| 2 | 4 | 29 | 429 | 25 |
| 2 | 13 | 53 | 1353 | 40 |
| 2 | 18 | 63 | 1863 | 45 |
| 2 | 33 | 88 | 3388 | 55 |
| 2 | 35 | 91 | 3591 | 56 |
思ったより多くの解が存在することが分かります。
さらに$k \le 8$まで探索したところ、132組の解が見つかりました。観察すると、差$m-n$が5の倍数、特に25の倍数になっている例が非常に多いことに気づきます。
この点についても興味深い性質がありそうですが、長くなりそうなので今回はここまでにします。機会があれば、別の記事としてまとめたいと思います。