【mod】n桁の数の各位を足し続けた結果が最高の位に一致する確率【Python】
Amazon.co.jp: Yoshiki Ueoka:作品一覧、著者略歴
問題
2桁の数を考えます。
— FoxQ@フォロバ99%@物理学者@作家@初心者絵師@vtuber (@foxq0113) 2021年5月8日
2桁の数の10の位と1の位を足してください。
足した数が2桁ならもう一度10の位と1の位を足し続けて、1桁の数になるまで繰り返します。
「最後の数」が「最初の数の10の位の数」と同じになる数は、いくつあるでしょうか?
実はこの算数の問題は、現時点での正答率が50%程度なので、割と良問だったのではないかと満足しています。
一般化
これをn桁にした場合いくつ条件を満たすものがあるか考えてみます。
これはPythonでプログラミングすると、以下のようになります(面倒なのでjupyter notebookのコードを直貼りします)。
for n in range(2,8):
count=0
for N in range(10**(n-1),10**n):
M=(N-N%(10**(n-1)))/(10**(n-1))
if N%9==M%9:
count+=1
print('n=',n,'count=',count)
print(count/(10**n-10**(n-1))*100,'%')
全角スペースが入っていますが、使用する場合、タブのスペースに置き換えてください。
実行結果
n=7桁までの結果を計算した。
n= 2 count= 18
20.0 %
n= 3 count= 108
12.0 %
n= 4 count= 1008
11.200000000000001 %
n= 5 count= 10008
11.12 %
n= 6 count= 100008
11.112 %
n= 7 count= 1000008
11.1112 %
このように、題意を満たす確率は、
となると考えられる。の極限を考えると、
となることが分かる。