アプリ版:「スタンプのみでお礼する」機能のリリースについて

2のN乗が10の場合、手計算でNの値を求める方法が知りたいです。

電卓などでこの値が出ましたでなく、アルゴリズムを知りたいです。

中学レベル
高校レベル
大学レベル

の3レベルで説明できる人いますか?

A 回答 (11件中1~10件)

アルゴリズムではありませんが、高校レベルの手計算としては常用対数表を使う方法もあるのではないでしょうか。


log(10)2は0.3010(4桁の表の場合)なので、
1 / 0.3010 ≒ 3.322
    • good
    • 4

No.4 & 7です。

すべて手計算で求めてみました。
2^N=10 の両辺の自然対数をとると(以下対数はすべて自然対数)
Nlog2=log10=log2+log5 だから
N=1+(log5/log2)
Nを求めることはlog2,log5を求めることに帰着します。

ここでは次の級数(1)を利用して、小数第5位程度まで計算してみました。
log(n+1)-logn=2{1/(2n+1)+1/(3・(2n+1)^3)+1/(5・(2n+1)^5)+…} …(1)

log2は(1)にn=1を代入して整理した下の式の第5項まで計算。
log2=(2/3){1+1/(3・9)+1/(5・9^2)+1/(7・9^3)…}
第1項=1
第2項=1/27=0.03703…
第3項=1/405=0.00247
第4項=1/5103=0.00019
第5項=1/59049=0.00002
log2≒(2/3){1+0.03703+0.00247+0.00019+0.00002}
  ≒(2/3)×1.03971≒0.6931

log5は(1)にn=4を代入して整理した下の式の第3項まで計算。
log5=2log2+(2/9){1+1/(3・81)+1/(5・81^2)+…}
第1項=1
第2項=1/243=0.004115
第3項=1/32805=0.0000304
log5≒2log2+(2/9)(1+0.004115+0.0000304)
≒2・0.6934+(2/9)・1.0041454≒1.60942

したがってN=1+(log5/log2)≒1+(1.60942/0.69314)≒3.32192

(なおこの計算方法は高木貞治先生の「定本解析概論」を参考にしました。同書ではlog2は第13項まで、log5は第6項までの和を求めて、それぞれ小数第13位までの値を示しています。)

関数つき電卓などで計算したところ以下のようになりました。
log2=0.693147181…
log5=1.609437912…
N=3.321928095…  
急速に収束する級数を選べば、短時間に計算できる最初の3~5項までの和でもかなり精度の高い近似値が得られることがわかります。
    • good
    • 4

>おそらく、「2の N 乗を手計算で」いかにして求めるか? の方が根本問題なのかも。



手計算では、2^n = e^[n*LN(2)] をそのままじゃ使えんでしょう。

10 進 3 桁程の精度なら、
 e^x ≒ ((x+3)^2+3)/((x-3)^2+3)   (精度 10 進 3 桁程)
 e^x ≒ ((x+4)^3+12*x+56)/(-(x-4)^3-12*x+56)   (精度 10 進 5 桁程)
 … …  >Pade Approximant exp_2/2, 3/3 / 参考URL ↓
などにて、x = n*LN(2) とする。

LN(2) は、前稿の式だと過大誤差。
 LN(1+d) ≒ d*(d^2+21*d+30)/{3*(3*d^2+12*d+10)}   (精度 10 進 3 桁程)
を使ってみると、LN(2) ≒ 52/(3*25) ≒ 0.693 。
もっとも、これだけなら定数扱いとし、LN(2) ズバリでも容認してくれる?

このくらいは準備し、やおら逐次勘定でもせねばならんのでしょうね。

   

参考URL:http://mathworld.wolfram.com/PadeApproximant.html
    • good
    • 1

おそらく、「2の N 乗を手計算で」いかにして求めるか? の方が根本問題なのかも。



  
    • good
    • 2

No.4です。

ご指摘の通り、指数の拡張(指数が整数以外の場合)などは中学校の数学の学習指導要領の範囲外です。

ただしご質問では「中学レベル」の説明も求めていますので、もっとも基本的な(数学好きの中学生であれば理解できる程度の)計算法を考えてみました。
    • good
    • 0

「3レベルで説明」はご勘弁を。


数値算法の一つだけでも。

手軽に試行できるのは、Pade 近似。
 2^N = 10
ならば、まず N の整数部 3 を目算で出してしまう。
そのあと、
 10/2^3 = 1.25
の自然対数を「Pade 近似」で勘定。
 ln(1+x) ~ x(6+x)/(6+4x)
から、x ≒ 0.2232 を得て、2 を底とする対数へ変換、
 log_2 (1.25) = 0.2232/ln(2) ≒ 0.3220
誤差は、最後の位で 1 程度。

参考 URL
  ↓
>the Pade approximation is:
P{ ln( 1+x ) } = x(6+x)/(6+4x)

   

参考URL:http://www.nezumi.demon.co.uk/consult/logx.htm
    • good
    • 1

指数は中学で習わないでしょう。

    • good
    • 1

ニュートン法などを使わない中学生レベルの計算です。



2^3=8<10<2^4=16 なので、3<N<4 であることがわかります。

ここでN=3+x とおきます(0<x<1)
2^N=2^(3+x)=10 より 2^3*2^x=10 だから 2^x=10/8=5/4=1.25

ここで 2^(1/2)=1.41…だから 2^(1/4)<(1.44)^(1/2)=1.2です。
したがって 1/4<x<1/2 です。

ここでN=3+(1/4)+y とおきます(0<v<1/4)
2^N=2^3*2^(1/4)*2^y=10 だから 2^y=10/(8*(2^1/4))
整理すると 2^y=5/(4*2^(1/4))
両辺を4乗すると 2^(4y)=5^4/2^9=1.22…
先に調べたとおり 2^(1/4)<1.2 かつ 2^(1/2)>1.4 だから
1/4<4y<1/2  つまり 1/16<y<1/8
よって、3+1/4+1/16<N<3+1/4+1/8 すなわち
    3+5/16<N<3+5/8

ここでさらに N=3+5/16+z とおくと(0<z<1/16)
2^N=2^3*2^(5/16)*2^z=10 だから 2^z=10/(8*(2^5/16))
整理すると2^z=5/(4*2^(5/16))
両辺を16乗すると 2^(16z)=5^16/(4^16*2^5)=1.11…
ここで2^1/8=p とすると p^8=2
また(1.1)^8=(1.21)^4>(1.46)^2=2.13… より 2^(1/8)<2^(16z)<2^(1/4)
したがって 1/8<16z<1/4  1/128<z<1/64

よって 3+5/16+1/128<N<3+5/16+1/64
3+41/128<N<3+21/64
3.3203125<N<3.328125

これを繰り返せばいくらでも細かくなりますが
真の値は N=3.32192809…なので、この段階でも小数第1位までは正しく求められています。
    • good
    • 0

No.2です。


logを分数に近似する方法についての質問のURLを教えておきます。
http://oshiete.goo.ne.jp/qa/7561670.html

連分数展開による方法が紹介されています。
    • good
    • 0

大学レベルでは、N=log(2) 10をテイラー展開して求める。



高校レベル
N=log(2) 10を連分数展開する。
log(2) 10
=3+(log(2) 10-3)
=3+log(2) 5/4
=3+1/(log(5/4) 2)
=3+1/(3+(log(5/4) 2-3))
=3+1/(3+(log(5/4) 128/125))
=3+1/(3+1/(log(128/125) 5/4))
=…
適当なところ(5、6回程度の展開で十分な精度が得られる)でlogのところを0にでもおいて分数に直して計算する。

残念ながら、中学レベルでは説明できません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!