【新規性喪失の例外の表示】特許法第30条第1項適用 Natarajan Murugesan,A.M.S.Ramasamy,Journal of FundamentalSciences,Vol.7, No.1, 2011年5月20日
【文献】
Natarajan Murugesan, A.M.S. Ramasamy,A numerical algorithm for nth root,[online],2011年 5月20日,URL,http://www.mjfas.utm.my/index.php/mjfas/article/view/207/465
(58)【調査した分野】(Int.Cl.,DB名)
正の実数Mのn乗根であって10
k−1a
k+10
k−2a
k−1+…+a
1で表されるn乗根を求める計算機であって、
前記n乗根の桁数kを決定する第1の手段と、
前記n乗根の10
k−1の位の値a
kを決定する第2の手段と、
前記n乗根の10
k−2の位の値a
k−1を決定する第3の手段と、
前記n乗根の10
i−1の位の値a
iを、iをk−2から1まで1ずつデクリメントしながら順番に決定する第4の手段とを備え、
前記第1の手段が、前記実数Mを一の位から開始してサイズnのブロック(ただし、左端のブロックのサイズはn以下)に分割し、ブロックの総数を前記n乗根の桁数kに決定し、
前記第2の手段が、k個の前記ブロックの内、前記左端のブロックの数字B
kを得て、a
kn≦B
kを満足する最大の値a
k(1≦a
k≦9)を決定し、
前記第3の手段が、実数M
k−1=M−10
(k−1)na
knを定義し、実数M
k−1を一の位から開始してサイズnを有する(k−2)個のブロック(ただし、左端のブロックのサイズはn以上)に分割し、前記左端のブロックの数字B
k−1(M
k−1)を得て、下式(1)および(2)に基づいてV
k−1T
k−1≦B
k−1(M
k−1)を満足する最大の値V
k−1(0≦V
k−1≦9)を値a
k−1として決定し、
前記第4の手段が、実数M
i=M
i+1−10
i×nV
i+1T
i+1を定義し、実数M
iを一の位から開始してサイズnを有する(i−1)個のブロック(ただし、左端のブロックのサイズはn以上)に分割し、前記左端のブロックの数字B
i(M
i)を得て、下式(1)および(2)に基づいてV
iT
i<B
i(M
i)を満足する最大の値V
i(0≦V
k−1≦9)を値a
iとして決定する(ただし、下式(1)および(2)において、k−1=iとする。)計算機。
【数1】
【先行技術文献】
【非特許文献】
【0002】
【非特許文献1】(a)J.Napier,Mirifici Logarithmorum Canonis Descriptio(1614) and E.Wright(English Translation from Latin),A Description of the Admirable Table of Logarithms(1616)、(b)J.Napier(1969),A Description of the Admirable Table of Logarithms,London 1616,Amsterdam;New York,N.Y.:Theatrum Orbis Terrarum;Da Capo Press
【非特許文献2】R.G.Dromey,How to solve it by computer,Pearson Education,New Delhi,2008
【非特許文献3】I.Niven and H.Zuckerman,An introduction to the theory of numbers,Wiley Student Edition,New Delhi,1991
【非特許文献4】J.Gower,A note on an iterative method for root extraction,The Compute J.,1(3)(1958),142−143
【非特許文献5】R.Burden and D.Faires,Numerical analysis,Thomson Asia,Bangalore,2005
【非特許文献6】K.Matthews,Computing mth roots,The College Math.J.,19(1988),174−176
【非特許文献7】W.Priestley,From square roots to nth roots,Newton’s method in disguise,The College Math.J.,30:5(1999),387−388
【非特許文献8】D.Muench and G.Wildenberg,A logarithm algorithm for a five−function calculator,The Two−year College Math.J.,14(4)(1983),324−326
【発明を実施するための形態】
【0004】
2.累乗法による桁数
まず、当該アルゴリズムの基本結果が必要である。NおよびWをそれぞれ、自然数および整数の集合とする。また、αをk桁
【0006】
の所与の正の整数とする。ここで、αをn乗する際の桁数について考える。
【0007】
定理1
mをα
nの桁数とすると、以下が成立する。
【0009】
証明
ケース(i)まず、n=2について考える。k=1の場合は、以下が成立する。
【0013】
また、2k−1≦m≦2kである。但し、
【0015】
数式(2.2)、(2.3)、および(2.4)は、数式(2.1)がn=2の場合に有効であることを意味する。
【0016】
ケース(ii)次に、n>2とする。k=1の場合は、α<10またはα
n<10
nである。これは、α
nが最大n桁であることを意味する。
したがって、以下が成立する。
【0018】
k桁(k>1)の数αについて考える。この場合は、10
k−1≦α<10
kが成立する。よって、10
(k−1)n≦α
n<10
knとなる。これは、以下を意味する。
【0020】
よって、数式(2.5)および(2.6)は、数式(2.1)がn>2の場合に有効であることを意味する。このように、上記定理は、n、k∈Nのすべての値に関して有効である。
【0021】
3.数値アルゴリズム
所与の正の整数Mのn乗根を求めるものとする。まず、Mが正の整数のちょうどn乗である場合の方法を示す。一般的な場合については、第5項にて後述する。
【0022】
ステップ1
Mの一の位から開始して、それぞれサイズnの可能最大数のブロックにMの各桁を分割する。この過程で、Mの左端の桁が残った場合は、これらの桁で別のブロックを形成する。Mの各桁でこのように形成したブロックの総数をkとする。この場合、定理1によって、Mの正の実数のn乗根は、k桁から成り、たとえば一の位から順にa
1、a
2、・・・、a
kとなる。
MをM(k,n)とすると、以下のように表される。
【0024】
ここで、M(k,n)の右側から各ブロックをB
1、B
2、・・・、B
kとする。B
iのサイズを|B
i|とすると、以下のように表される。
【0028】
a
k∈Nの可能最大値を以下のように決定する。
【0032】
k=1の場合は、R
kがM(k,n)の求めるべき正の実数のn乗根である。k≠1の場合は、ステップ2に進む。
【0033】
ステップ2
次のブロックを形成する。
【0041】
とする。
M
k−1の一の位から開始して、それぞれサイズnの(k−2)個のブロックにM
k−1の各桁を分割するとともに、残ったM
k−1の左端の桁で別のブロックを形成する。また、M
k−1の左端のブロックをB
k−1(M
k−1)とする。この場合は、以下が成立する。
【0043】
ここで、D
k・B
k−1は、D
kとB
k−1の連結(「・」で表す)と定義される。
また、
【0045】
と見なす。
V
k−1∈Wの最大値を以下のように決定する。
【0051】
は、n個から一度にr個を選ぶ場合の組み合わせ数を表す。
ここで、
【0053】
とする。
R
k−1=R
koV
k−1と定義すると、以下が成立する。
【0055】
k=2の場合は、R
k−1が求めるべき根である。k≠2の場合は、ステップ3に進む。
【0058】
と定義する。
ステップ2の過程を繰り返す。ここで、M
k−2は、(k−2)個のブロックから成る。
数式(3.11)および(3.12)と同様の手順をそれぞれ行って、U
k−2およびV
k−2を求める。また、同様に、a
k−2=V
k−2としたり、R
k−2を定義したりする。そして、kが1になるまでこの過程を繰り返す。ここで、R
1=10
k−1a
k+10
k−2a
k−1+・・・+a
1がMのn乗根である。
【0059】
4.方法の証明
数学的帰納法の原理により、第3項に示した方法を検証する。
【0061】
証明
数式(3.3)および(3.4)から、a
kn≦B
k<10
nが得られる。よって、a
k<10となる。また、B
k≠0であることから、a
k≧1となる。これらにより、1≦a
k≦9が得られる。
【0062】
補助定理2
0≦a
i≦9、i=1、2、・・・、k−1
【0063】
証明
数式(3.6)から、10
nD
k=10
nB
k−10
na
knが得られる。これは、10
na
kn+10
nD
k+B
k−1=10
nB
k+B
k−1と表せる。また、数式(3.8)および(3.10)から、10
nU
kn+B
k−1(M
k−1)=B
k・B
k−1が得られる。数式(3.12)により、この関係は、10
nU
kn+V
k−1T
k−1≦B
koB
k−1と表される。数式(3.2)および(3.3)を考慮すると、|10
nU
kn+V
k−1T
k−1|≦2nが得られる。これは、数式(3.9)および(3.11)により、|U
k−1n+V
k−1T
k−1|≦2nと表される。そして、二項定理を用いると、|(U
k−1+V
k−1)
n|≦2nが得られる。したがって、|(10U
k+V
k−1)
n|≦2nとなる。
【0064】
U
k=a
k≠0およびa
kの最大選択を考慮すると、定理1によって、上記は0≦V
k−1≦9と表せる。そして、数式(3.14)から、0≦a
k−1≦9が得られる。
同様に、0≦a
i≦9、i=1、2、・・・、k−2についても証明可能である。
【0065】
M(k,n)が正の整数(たとえば、λ)のちょうどn乗であるものとすると、
【0067】
となる。
ここで、数式(3.1)から、λ=10
k−1a
k+10
k−2a
k−1+・・・+a
1である。
数式(3.11)および(3.14)、ならびにアルゴリズムのステップ3から、上記は以下のように表せる。
【0069】
また、数式(3.13)ならびにアルゴリズムのステップ3により、以下のように表される。
【0071】
さらに、数式(3.8)、(3.9)、および(3.11)、ならびにアルゴリズムのステップ3から、以下が分かる。
【0073】
i=1、2、・・・、k−2の場合は、ステップ3ならびに数式(3.7)および(3.16)により、以下のように表される。
【0075】
そして、数式(3.5)および(3.15)、ならびにステップ3から、以下が得られる。
【0077】
i=1、2、・・・、k−1の場合、関係式(4.4)は、
【0079】
と表される。よって、数式(3.8)、(3.9)、および(3.11)、ならびにアルゴリズムのステップ3から、U
i=10R
i+1、i=1、2、・・・、k−1が得られる。
i=1、2、・・・、k−2の場合は、ステップ3ならびに数式(3.7)および(3.16)により、以下のように表される。
M
i=
【0081】
そして、数式(3.5)および(3.15)、ならびにステップ3から、以下が得られる。
【0083】
i=1、2、・・・、k−1の場合、関係式(4.4)は、
【0085】
と表される。よって、U
i=10R
i+1、i=1、2、・・・、k−1となる。
【0086】
定理2
n∈Nを所与とすると、U
i(i=1、2、・・・、k)、V
i(i=1、2、・・・、k)、およびT
i(i=1、2、・・・、k−1)は、すべてのk∈Nに対して、以下の関係を満足する。
【0088】
証明
数式(3.1)から、関係式(4.5)がk=1の場合に有効であることが分かる。
関係式(4.5)がk∈Nの場合に有効であると仮定する。そして、M(k+1,n)について考えると、関係式(3.8)、(3.9)、(4.2)、および(4.3)は、kを1だけ増やした場合にも有効である。
ここで、U
i(i=2、3、・・・、k+1)、V
i(i=2、3、・・・、k+1)、およびT
i(i=2、3、・・・、k)の帰納的仮定を用いると、
【0092】
となる。
(k+1)の場合にも適用可能な関係式(4.5)を用いると、数式(4.6)の右辺は、
【0094】
となる。これは、二項定理を用いると(10
ka
k+1+10
k−1a
k+・・・+10a
2+a
1)
nとなって、M(k+1,n)が得られる。よって、当該定理は、kに関する帰納により示される。
【0095】
5.一般的な場合のn乗根
一般的には、正の実数のちょうどn乗またはn乗根ではない正の整数のn乗根を求めたい場合がある。この場合は、第3項に示したアルゴリズムを以下のように修正した上で採用する必要がある。
Mを正の実数とすると、整数部分および小数部分から成る場合がある。ここで、小数点以下第h位まで根を求めるものとする。この場合、所与の数Mに10
hnを乗じ、[10
hnM]に関して第3項のアルゴリズムに従うと、R
1が10
hnMのn乗根の整数部分となる。ここで、
【0097】
であることから、R
1を10
hで除することにより、小数点以下第h位までMのn乗根を求める。
以下に例をいくつか示す。
【0098】
5.1 Mがちょうどn乗である場合
例1.
3√(16457616482180544)を求める。
【0099】
ステップ1
M=16457616482180544とする。n=3であることから、第3項に記載の通りにMの各桁を分割すると、以下が得られる。
【0101】
ここで、k=6である。a
63≦16となるには、a
6=2が最大値である必要がある。これより、R
6=a
6=2であることが分かる。K≠1であるため、ステップ2に進む。
【0102】
ステップ2
ブロックD
6=B
6−a
63=8を形成する。そして、M
5=M−10
5*3a
63=8 457 616 482 180 544と定義する。U
6=a
6=2およびV
6=0とする。B
5(M
5)=D
6・B
5=8457であることが分かる。
M
5の各桁を以下のように分割する。
【0104】
U
5=10(U
6+V
6)=20と見なす。値0、1、2、3、4、5、および6をV
5に割り当てると、それぞれV
5T
5=0、1261、2648、4167、5824、7625、および9576が得られる。ここで、
【0106】
である。よって、V
5T
5≦8457となるには、V
5∈Wの最大値が5である。ここで、T
5=1525である。a
5=V
5=5およびR
5=10a
6+a
5=25とする。
以降のステップについては、結果を下表に示す。
【0109】
よって、R
1=10
5a
6+10
4a
5+10
3a
4+10
2a
3+10a
2+a
1=254364がMの立方根である。また、
【0111】
であることが分かる。
所与の問題について、上記の段階的な手順を踏むことはできる。ただし、より簡単な表現として、以下の例に示すような別の手順が有用と考えられる。
【0112】
例2.
4√(16192865729296)を求める。
【0114】
よって、2006が求めるべき根である。
【0115】
5.2 Mがちょうどn乗でない場合
例3.
6√(175)を小数点以下第2位まで正しく求める。
【0117】
例4.
3√(35.66・・・)を小数点以下第3位まで正しく求める。
【0119】
6.結論
上記の解析法では、所与の正の実数に関してn乗根の一桁ごとの開平を直接実行することができる。n乗根の決定にニュートン法を用いる場合は、初期解を割り出した後に、微分法を適用する必要がある。一方、上記の方法では、簡単な算術演算しか用いず、初期解も不要である。この方法は、コンピュータで実現可能であるため、電子機器に組み込んで、メモリー空間を増やすことなく所与の正の実数のn乗根を決定するようにしてもよい。