RSS

 

RSS


パズル


nで割り切れる10十進数

  • いわいまさか
  • at 2015/2/05 20:00:00

関連記事は、
nで割り切れる最小01十進数
最少を求めるとなると、先の記事の方法を参照。

最少かどうかはさておき、
「どんなnも何倍かすれば01十進数になる」ことを
パズ懇メンバーの岩沢さんが示してくれた。

以下はメールの転載。
###################

>「どんな数も何倍かすると01十進数」になるのかとか。

面白い問題ですね.考えてみました.

私の答えを言ってしまうと,
大きくていいなら,01十進数を見つける簡単で一般的な方法が
あります.

たとえば,2439のときは,以下のようにすればよいです.
1/9/2439を計算すると,循環節が
000045556011115666712222677782333378889344449
である循環小数(循環節の前は0のみ)だとわかります.
この循環節を整数として見て2439に乗じれば,01十進数ができます.
実際,
2439*45556011115666712222677782333378889344449
は1だけが45個並ぶ数となります.
循環節の前が0の場合は,これでOKです.

循環節の前が0でない場合,たとえば,2048の場合は,
1/9/2048=0.000054253472222222....
ですが,このようなときは,2048に
9*5425347+2
を乗じれば,01十進数ができます.
実際,2048*(9*5425347+2)=100000000000になります.

一般には,数nに対して,1/9/nを計算したときの
循環節の前の数の並びをa,循環節をb,循環節の長さをrとします.
たとえばn=2048なら,a=5425347,b=2,r=1です.
このとき,
(10^r-1)*a+b
を考え,これをnに乗じれば01十進数ができます.

-----

どうしてこれでよいかを簡単に説明しておきます.
注目している循環小数を適当に10の整数乗したものは,
a+b/(10^r-1)
と書けます.
したがって,
n*{(10^r-1)*a+b}
=(10^r-1)*n*{a+b/(10^r-1)}
=(9がr個並ぶ整数)*(1/9)*(10の整数乗)
=(1がr個並ぶ整数)*(10の整数乗)
というわけです.

岩沢

###################
メール転載はここまで

どんなnも何倍かすれば
111111111111111110000  みたいな
「1が並んだあと0が並んだ数」になるのだった。


  • コメント (0)
  • トラックバック (0)
トラックバックURL :
http://www.iwai-masaka.jp/tb.cgi/56156