[msg#wsiki]
n進数で何桁になるか
ある自然数\(a\)をn進数(n進法)で表したときの桁数を求める公式です。
\(aのn進法での桁数=\displaystyle [\log_{n}a]+1\)
[ ] の記号は、ガウス記号と呼ばれる記号です。小数点以下を切り捨てする関数です。
1を足すことを忘れないようにしましょう。
例1: \(2^{50}\)は10進法で何桁か?
例えば、\(2^{50}\)が10進法で何桁になるのか調べるためには、
\(\displaystyle [\log_{10}2^{50}]+1\)
を計算すればよいのです。
\(\displaystyle \log_{10} 2 = 0.30103 \)
として(近似)計算してみると、
\(\displaystyle [\log_{10}2^{50}]+1\)
\(\displaystyle =[50\log_{10}2]+1\)
\(\displaystyle =[15.0515]+1\)
\(\displaystyle =16\)
16桁であることが計算できました。
実際に、\(2^{50}\)を計算すると、
\(2^{50}=1125899906842624\)
となりますから、16桁であることが確認できます。
例2: 9999999999は5進法で何桁か?
10進法で9が10個ならんでいる数を5進法で表した場合の問題です。
公式をつかって、
\(\displaystyle [\log_{5}9999999999]+1\)
を計算します。
計算機で計算すると、
\(\displaystyle [\log_{5}9999999999]+1=15\)
となりますから15桁です。
計算機がなくても、なんとか計算できますよ。
\(9999999999=10^{10}-1\)
ですから、ちょっとずれますが\(10^{10}\)が5進法で何桁かを調べます。
公式によって
\(\displaystyle [\log_{5}10^{10}]+1\)
\(\displaystyle =[10\log_{5}10]+1\)
\(\displaystyle =[10\frac{\log_{10}{10}}{\log_{10}{5}}]+1\)
\(\displaystyle =[10\frac{1}{\log_{10}{5}}]+1\)
\(\displaystyle =[14.30677]+1=15\)
\(10^{10}\)は5進数では、15桁です。
ここで、
\(\displaystyle [14.30677]\)に注目してください。
小数点以下がきっちり0になっていませんね。
これは、この15桁の数はちょうど繰り上がってできた15桁でない数であることを表しています。
ちょうど繰り上がった場合の15桁の数の場合、ガウス関数の小数点以下は0となります。
ですから、
\(9999999999\)と\(10^{10}\)は5進法で同じ桁数であることがわかります。
したがて、答え15桁であることが計算できました。
なお、\(\displaystyle \log_{10}5=\log_{10}{\frac{10}{2}}=1-\log_{10}2\)
を使って
\(\displaystyle \log_{10} 5 = 0.69897 \)
を計算してます。
補足
模範解答のように解答つくりましたが、実は5で割るのはそう難しくないので、この問題の場合は、普通に5で割り続けて5進数に書き直したほうが簡単です。そのほうが直接的で確実に計算できます。
関連
[ad#foot]