過去ログ

uchinyan
#27968 少し修正。
スモークマンさん流のアプローチでの証明は、大筋同じです。
直感的には明らかなんだけど、ちょっと説明しにくいんですよね。

#27954の問題の拡張
9 * 99 * 9999 * 99999999 * 9999999999999999 * ... * 99…(2^n 個)…99
= (10 - 1) * (10^2 - 1) * (10^4 - 1) * ... * (10^(2^n) - 1)
= (10^3 - 10^2 - 10^1 + 10^0) * (10^4 - 1) * ... * (10^(2^n) - 1)
= (10^7 - 10^6 - 10^5 + 10^4 - 10^3 + 10^2 + 10^1 - 10^0) * ... * (10^(2^n) - 1)
= 10^(2^(n+1) - 1) - 10^(2^(n+1) - 2) - 10^(2^(n+1) - 3) + 10^(2^(n+1) - 4)
- 10^(2^(n+1) - 5) + 10^(2^(n+1) - 6) + 10^(2^(n+1) - 7) - 10^(2^(n+1) - 8)
+ ...
+ (-1)^(n-1) * 10^3 + (-1)^n * 10^2 + (-1)^n * 10^1 + (-1)^(n+1) * 10^0
そこで、掛け算の値は、桁にマイナスを許すという架空の表記法での見た目は、2^(n+1) 桁の各桁が
+1, -1, -1, +1, -1, +1, +1, -1, ..., (-1)^(n-1), (-1)^n, (-1)^n, (-1)^(n+1)
となる数、とみなすことができます。
これは、二つずつの +1, -1 が組になって、これに適当に -1 がかかったものが繰り返しています。
繰り返しは、2^(n+1) * 1/2 = 2^n 回になります。
しかし、桁の数字が -1 というのはナンセンスなので、実際には、10 - 1 = 9 の意味になります。
さらに、実際の計算では、10 - 1 = 9 を行う際に、一つ上の桁から 1 を借りてくることになり、
-1 の桁よりも一つ上の桁の数字が -1 されます。
(したがって、実際には、2^(n+1) - 1 桁の数になりますが、これは、今の議論では、それ程重要ではありません。)
さて、求めたいのは、掛け算の値ではなく、その値の各桁の数字を加えた値です。
そこで、次のようなトリックが使えます。つまり、加える数は、
・桁の数字が +1 の時は、+1 となります。
・桁の数字が -1 の時は、10 - 1 = 9 となりますが、一つ上の桁の数字を -1 する必要があるので、それを補うために 9 - 1 とします。
すべての桁の和を求めると、9 - 1 の -1 は、ちょうど一つ上の桁の数字から 1 を引くことに対応しています。
これらのことを考え合わせると、求める値は、
・+1, -1 の組では、(+1) + (9 - 1) = 9 になります。
・-1, +1 の組では、(9 - 1) + (+1) = 9 になります。
実際の計算では、-1, +1 の組の先頭の 9 - 1 の -1 は、その前の組の最後と打ち消すのですが、
この分け方では、後ろの +1 と打ち消し、計算が楽になるのがミソです。
求めるものが各桁の数字の和なので、このようなトリックが使えます。
そこで、結局、求める値は、組の繰り返しが 2^n 回だったので、9 * 2^n になります。
ネコの住む家   7月29日(土) 9:15:01   MAIL:uchi@sco.bekkoame.ne.jp   27971

過去問題一覧へ戻る