「Javaを復習する初心者」が一言

「Javaを復習する初心者」が一言します。メインは「http://java-beginner.com/」

自然数の各桁を足したときの桁数

ブログの記事「9で割り切れる数の性質について - OGATA Tetsuji の数学ブログ」を読んで自分なりに以下の疑問について考えてみました。

自然数の各桁を足したとき、その桁数は元の自然数の桁数より減るのか?」

1桁の自然数の場合は、各桁の和(自然数そのもの)は1桁です。

2桁の自然数の場合はどうでしょうか?各桁の和は、11の場合、1 + 1 = 2で1桁ですが、19の場合、1 + 9 = 10で2桁です。

3桁の自然数の場合はどうでしょうか?999の場合、9 + 9 + 9 = 27で2桁です。3桁以上の自然数については、自然数の各桁を足したとき、もとの桁数より減るという予測にたどり着きました。

そこで、各桁の和は元の自然数とどのように比較できるか?という疑問が浮かび、ひとつの命題を思いつきました。

命題と証明

N (\ge 1)桁の自然数x \displaystyle \sum_{n=0}^{N-1}10^n a_n と表すことにします。
a_{n}は各けたの数字です。つまり、0 \le a_{n} \le 9です。
この表記を利用して、以下の命題を証明します。

命題

N \geq 3かつa_{N-1}, a_{N-2} \neq 0ならば、次の不等式が成り立つ。
{
\begin{eqnarray}
\sum_{n=0}^{N-2}10^n a_n \geq \sum_{n=0}^{N-1}a_n \tag{1}
\end{eqnarray}
}

等号はN=3, a_1=1, a_2=9のとき成り立つ。

命題の説明
命題の数式(1)の左辺は自然数から一番上の桁を取り除いた数です。例えば、456の場合は56です。右辺は各桁の和です。456の場合は15です。また、命題の右辺は元の自然数より一桁少ないというのが特徴です。

命題の証明

{
\begin{eqnarray*}
\sum_{n=0}^{N-2}10^n a_n - \sum_{n=0}^{N-1}a_n & =    & (a_{N-2}10^{N-2} + \cdots + a_{0}) - (a_{N-1} + \cdots + a_{0}) \\
                                               & =    & -a_{N-1} + (a_{N-2}10^{N-2} - a_{N-2}) + \cdots + 9a_{1} \\
                                               & \geq & 9a_{1} - a_{N-1} \\
                                               & \geq & 0
\end{eqnarray*}
}

ここで、最後の等号が成り立つのは、N=3, a_{1} = 1, a_{N-1}=9のときです。

(証明終わり)

等号が成り立つ具体例

自然数910は各桁の和が10です。また、一番上の桁を取り除いた数が10です。

より一般的な命題

係数についての条件、a_{N-2} \neq 0を取り除くと上記の命題は反例があります。例えば、901です。しかし、桁数に関しては以下の命題が成り立ちます。

命題

N \geq 3かつa_{N-1}\neq 0ならば\displaystyle \sum_{n=0}^{N-1}a_nの桁数はxの桁数より小さい。

証明

a_{N-2}\neq 0の場合は最初の命題で証明済みです。

a_{N-2} = 0の場合、 y = \displaystyle \sum_{n=0}^{N-1}a_n + 10^{N-2}とすると、yの各桁の和 > xの各桁の和です。最初の命題を適応すると、yの各桁の和はyの桁数より小さいので、xの各桁の和もyの桁数より小さいです。ここで、yxと桁数が同じなので、xの桁数 > xの各桁の和が成り立ちます。

具体例

簡単な例は901です。各桁の和は10で、元の数より桁数が小さくなってます。