関連記事は、
最少を求めるとなると、先の記事の方法を参照。
最少かどうかはさておき、
「どんな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が並んだ数」になるのだった。