特開2015-180983(P2015-180983A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 道脇 裕の特許一覧 ▶ Next Innovation合同会社の特許一覧

<>
  • 特開2015180983-零除算演算処理プログラム 図000051
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-180983(P2015-180983A)
(43)【公開日】2015年10月15日
(54)【発明の名称】零除算演算処理プログラム
(51)【国際特許分類】
   G06F 7/535 20060101AFI20150918BHJP
【FI】
   G06F7/535 A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
【全頁数】18
(21)【出願番号】特願2014-241983(P2014-241983)
(22)【出願日】2014年11月28日
(31)【優先権主張番号】特願2014-40011(P2014-40011)
(32)【優先日】2014年3月2日
(33)【優先権主張国】JP
(71)【出願人】
【識別番号】708000812
【氏名又は名称】道脇 裕
(71)【出願人】
【識別番号】510202167
【氏名又は名称】Next Innovation合同会社
(74)【代理人】
【識別番号】100148127
【弁理士】
【氏名又は名称】小川 耕太
(72)【発明者】
【氏名】道脇 裕
(57)【要約】      (修正有)
【課題】エラーを返すことなく零除算の演算処理を可能とする。
【解決手段】被除数B=0又は,丸めた結果の数値=0を以て被除数Bとすることに対して,除数A=0又は,丸めた結果の数値=0を以て除数Aとする場合,即ち,B/A=0/0の場合,この商Cとして0を返す。また,被除数B≠0又は,丸めた結果の数値≠0を以て被除数Bとすることに対して,除数A=0又は,丸めた結果の数値=0を以て除数Aとする場合,即ち,B/A=B/0(B≠0)の場合,この商Cとして0を返す。更に,目的とする除算b/aに対して,被除数B=数値a×数値b,除数A=数値a×数値aとして,即ち,除算B/Aを行い,これを以て除算b/aを行ったこととし,a=0及び/又はA=0の場合,除算b/aの商Cとして0を返す。
【選択図】図1
【特許請求の範囲】
【請求項1】
被除数B=0又は,丸めた結果の数値=0を以て被除数Bとすることに対して,除数A=0又は,丸めた結果の数値=0を以て除数Aとする場合,商Cとして0を返すことを特徴とする,零除算演算処理プログラム。
【請求項2】
被除数B≠0又は,丸めた結果の数値≠0を以て被除数Bとすることに対して,除数A=0又は,丸めた結果の数値=0を以て除数Aとする場合,商Cとして0を返すことを特徴とする,請求項1に記載の零除算演算処理プログラム。
【請求項3】
目的とする除算B/Aに対して,被除数b=数値A×数値B,除数a=数値A×数値Aとして除算b/aを行い,この除算b/aを以て除算B/Aとすることを特徴とする,請求項1又は2に記載の零除算演算処理プログラム。
【請求項4】
目的とする除算B/Aに対して,被除数b=数値A×数値Bを演算し,且つ,除数a=数値A×数値Aを演算し,その後,被除数bと除数aとで除算b/aを行い,これを以て除算B/Aを行ったこととし,A=0の場合,商Cとして0を返すことを特徴とする,請求項1乃至3の何れかに記載の零除算演算処理プログラム。
【請求項5】
目的とする除算B/Aに対して, Bの絶対値|B|からAの絶対値|A|を繰り返し減じる演算において,それらの各差がそれらの各減算の直前の値又は差よりも小さくなり且つ非負であるとき,絶対値|A|を減じる操作を繰り返すことで最小差dを得,この最小差dを得るに当たって絶対値|B|から絶対値|A|を減じ得る繰り返し数をRとし,A又はBの何れか一方のみが負数の場合には繰り返し数Rに対して−1を乗じた数を以て商Cとし,A及びBの両方が負数又は両方が正数の場合には繰り返し数Rを以て商Cとすることを特徴とし,特に,Aが負数で且つ上記最小差dが0でない場合には,当該最小差dに対して−1を乗じた数を以て剰余Dとし,また特に,A=0の場合,商Cとして0を返し,更に剰余D=Bを返すことを特徴とする,請求項1又は2の何れかに記載の零除算演算処理プログラム。
【請求項6】
目的とする除算B/Aに対して,B/0に1=(1/n)/(1/n)を乗じ,当該nに対する極限として無限大をとることにより,B/0の値として0を返すことを特徴とする,請求項1乃至4の何れかに記載の零除算演算処理プログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,零除算を行うことが可能な演算処理プログラムに関するものである。
【背景技術】
【0002】
従来,被除数/除数=商を処理する除算において、除数が0となる演算処理は禁止されており,コンピュータ等の演算処理装置上の処理としては,零除算が検出されれば,除外され,エラーを返すように構成されるか,又は所謂フリーズ状態となってしまう。このことは,コンピュータプログラム上において零除算が禁止されているというよりも,純粋に数学的に0で割るという除算は定義されていないということによっている。
【0003】
また,これまでは,被除数を固定しておきながら除数を0,0.1,0.01,・・・と小さくして行くと,商が急激に増大し,無限大に接近してしまうという事実から零除算は発散するとも考える向きもあった。この考えに基づけば,正側から除数を0に近づけた場合の結果である+∞と,負側から除数を0に近づけた場合の結果である−∞とから除数0の点であたかも−∞=+∞となるかのような問題まで検討されてきた。
【0004】
これらの問題から零除算は物理学や他の様々な数学応用分野において特異点の問題を提起し,永らく未解決とされてきた。特に,大型コンピュータやスーパーコンピュータを用いた計算分野においても零除算に係る特異点の問題は未解決とされ,ビッグバンやブラックホールをはじめ多くの未解決問題を残している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2011−118578号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は,上述の如くの問題を解決するものであり,零除算の解と解法,根拠を与え,零除算に纏わる問題を解決し,零除算を可能とする零除算演算処理プログラムを提供することにある。
【課題を解決するための手段】
【0007】
本発明の零除算演算処理プログラムは,被除数B=0又は,与えられた数値を適宜に丸めた結果の数値=0を以て被除数Bとすることに対して,除数A=0又は,与えられた数値を適宜に丸めた結果の数値=0を以て除数Aとする場合,商Cとして0を返すことを特徴としている。
【0008】
被除数B≠0又は,与えられた数値を適宜に丸めた結果の数値≠0を以て被除数Bとすることに対して,除数A=0又は,与えられた数値を適宜に丸めた結果の数値=0を以て除数Aとする場合,商Cとして0を返すことを特徴としている。
【0009】
目的とする除算B/Aに対して,被除数b=数値A×数値B,除数a=数値A×数値Aとすることにより,除算B/Aを行ったこととすることを特徴としている。
【0010】
目的とする除算B/Aに対して,被除数b=数値A×数値Bを演算し,且つ,除数a=数値A×数値Aを演算し,その後,被除数bと除数aとで除算b/aを行い,これを以て除算B/Aを行ったこととし,A=0の場合,商Cとして0を返すことを特徴としている。
【0011】
目的とする除算B/Aに対して,BからAを繰り返し減じる演算において,それらの各差がそれらの各減算の直前の値又は各差よりも小さくなり且つ非負であるとき,Aを減じる操作を繰り返すことで最小差dを得,この最小差dを得るに当たってBからAを減じ得る繰り返し数を以て商Cとすることを特徴とし,特に,A=0の場合,BからAを減じた差がBよりも小さくなることがないので繰り返し数が0となることから商Cとして0を返すことを特徴とする。
【0012】
目的とする除算B/Aに対して,BからAを繰り返し減じる演算において,それらの各差がそれらの各減算の直前の値又は差よりも小さくなり且つ非負であるとき,Aを減じる操作を繰り返すことで最小差を得,この最小差を得るに当たってBからAを減じ得る繰り返し数を以て商Cとすることを特徴とし,この一連の操作によって繰り返し数を最大化した際の非負最小値となる差を,除算B/Aにおける剰余Dとすることを特徴とし,特に,A=0の場合,BからAを減じた差がBよりも小さくなることがないので繰り返し数が0となることから商Cとして0を返すことを特徴とし,更に,剰余項として剰余D=Bを返すことを特徴としている。
【0013】
また、目的とする除算B/Aに対して, Bの絶対値|B|からAの絶対値|A|を繰り返し減じる演算において,それらの各差がそれらの各減算の直前の値又は差よりも小さくなり且つ非負であるとき,絶対値|A|を減じる操作を繰り返すことで最小差dを得,この最小差dを得るに当たって絶対値|B|から絶対値|A|を減じ得る繰り返し数をRとし,A又はBの何れか一方のみが負数の場合には繰り返し数Rに対して−1を乗じた数を以て商Cとし,A及びBの両方が負数又は正数の場合には繰り返し数Rを以て商Cとすることを特徴とし,特に,Aが負数で且つ上記最小差dが0でない場合には,当該最小差dに対して−1を乗じた数を以て剰余Dとし,また特に,A=0の場合,絶対値|B|からAを減じた差が絶対値|B|よりも小さくなることがないので繰り返し数が0となることから商Cとして0を返すことを特徴とし,更に剰余項として上記最小差d=|B|となることから剰余D=Bを返すことを特徴としている。
【発明の効果】
【0014】
本発明の零除算演算処理プログラムによれば,厳密な定理に基づいた単純な処理にして零除算の演算処理を高速且つ確実に実行することが可能となる。
【図面の簡単な説明】
【0015】
図1】3つの直角三角形を用いて零除算0/0=0の直感的理解を促す模式図。
【発明を実施するための形態】
【0016】
本発明を適用して成る零除算演算処理及び零除算演算処理プログラムについて,以下に,図1を参照しながら説明する。先ず,零除算の原理について説明し,その後,零除算演算処理及び零除算演算処理プログラムについて説明するものとする。
【0017】
零除算
§1.x/0=0の証明(可減集合編)
定義:A,Bを実数とするとき,除算B/Aの演算を,以下で定義する.
【0018】
(数1)
|B|−(|{A}|・|A|+a)=0 (0≦a)(A,B,a∈R)
において,B0=B,Aj =A (j=0,1,2,・・・)として,可減漸化式Bj−Aj+1=Bj+1におけるAj+1(このAj+1を第j+1可減数と呼ぶ)を元とする集合を第j+1可減数集合{Aj+1}とし,Bj (このBjを第j被可減数と呼ぶ)がBj >Bj+1≧0を満たすとき,{Aj+1}≠φ.満たさないとき,{Aj+1}=φとして,全ての可減数集合{Aj+1}を要素とする集合を可減集合{A}とする.
ここに,Bは被除数,Aは除数,|{A}|は可減集合{A}の要素数|{A}|であってB/Aの商であり,aは剰余であって,|{A}|を最大化したときにとり得る非負最小実数である.このとき,次の定理が成り立つ。
【0019】
定理1:0/0=0が成り立つ.
証明:定義B−(|{A}|・|A|+a)=0より,B=0⇒a=0.
従って,0−(|{A}|・|A|+0)=0−|{A}|・|A|=0.
ここで,A=0⇒0−|{A}|・|A|=0−|{A}|×0=0.
さて,B=B0=0∧A=Aj=0故に,可減漸化式Bj−Aj+1=Bj+1は0−0=0であってBj >Bj+1≧0は満たさない.
よって,可減集合{A}={{A1},{A2},・・・,{Aj},・・・}={φ,φ,・・・,φ,・・・}=φであり,
要素数|{A}|=|φ|=0を得る.
従って,A=B=0⇒B−(|{A}|・|A|+a)=0−(0×0+0)=0.∴ 0/0=0.□
【0020】
補足:除算B/Aは,BからAを何回減じることが出来てその時の剰余が幾つになるかによって定義可能であり,上記のようにA=0∧B=0とした場合,この何回減じることが可能かは可減集合{A}の要素数|{A}|によって与えられ, A=0の場合,任意の値でも成立するように感じられるが,実際には「0は,何回減じても減じたことにならない(−0−0−0・・・の項は一般に無記載とする.)」という事実によって,1回も減じていないのと変わらないこととなり,従って,可減回数|{A}|は|{A}|=0しかとり得ないことに注意を要する.
【0021】
定理2:除算B/AにけるA=0の商は0で,剰余はBとなる.
【0022】
証明:B>0のとき,定義|B|−(|{A}|・|A|+a)=0より,A=0ならば,B=B0>0∧A=Aj=0
故に,可減漸化式Bj−Aj+1=Bj+1は,
【0023】
(数2)
B0−0=B0=B1
B1−0=B1=B2
・・・
Bj−0=Bj=Bj+1
であって,Bj >Bj+1≧0は満たさない.
よって,可減集合{A}={{A1},{A2},・・・,{Aj},・・・}={φ,φ,・・・,φ,・・・}=φであり,
要素数|{A}|=|φ|=0を得る.従って,
【0024】
【数3】
が成り立つ.
これより,B>0⇒a≠0が成り立つ.ここで,A=0⇒商|{A}|=0,且つ,剰余a=Bであって,明らかに,aは|{A}|を最大化した際の非負最小数であるからB≠0における除算B/AにけるA=0の商|{A}|は0で,剰余aはBとなる.勿論,B=0⇒a=0が成り立つ.□
【0025】
補題1:除算B/Aにおいて,A>B=0の場合
定義より,
B=B0=0∧A=Aj>0であり,
可減漸化式Bj−Aj+1=Bj+1
【0026】
(数4)
B0−A1=0−A=B1
B1−A2=−A−A=−2A=B2
・・・
Bj−Aj+1=−(j+1)A=Bj+1
であってBj >Bj+1≧0は満たさない.
よって,可減集合{A}={{A1},{A2},・・・,{Aj},・・・}={φ,φ,・・・,φ,・・・}=φであり,要素数|{A}|=|φ|=0を得る.従って,
A>B=0のとき,
【0027】
(数5)
0−(|{A}|・|A|+a)=0−(|φ|・|A|+a)=0−(0×|A|+a)=0−(0+a)=0
∴ a=0.
これより,A>B=0⇒商|{A}|=0,剰余a=0が成り立つ.□
【0028】
補題2:除算B/Aにおいて,A>B>0の場合
定義より,
0<B=B0<A=Ajであり,
可減漸化式Bj−Aj+1=Bj+1
【0029】
(数6)
B0−A1=0−A=B1
B1−A2=−A−A=−2A=B2
・・・
Bj−Aj+1=−j A−A=−(j+1)A=Bj+1
であってBj >Bj+1≧0は満たさない.
よって,可減集合{A}={{A1},{A2},・・・,{Aj},・・・}={φ,φ,・・・,φ,・・・}=φであり,要素数|{A}|=|φ|=0を得る.従って,A>B>0のとき,
【0030】
(数7)
B−(|{A}|・|A|+a)=B−(|φ|・|A|+a)=B−(0×|A|+a)=B−(0+a)=B−a=0
∴ B=a
を得る.これより,A>B>0⇒商|{A}|=0,余りa=Bが成り立つ.□
【0031】
補題3:除算B/Aにおいて,B>A=0の場合
定理2によって証明されている.□
【0032】
補題4:除算B/Aにおいて,B>A>0の場合
定義より,被除数Bは,B=kA+b(ただし,k∈N,0≦b<A)と表される.
これを用いれば,B0=B=kA+bであるから可減漸化式Bj−Aj+1=Bj+1は,
【0033】
(数8)
B0−A1=(kA+b)−A={(k−1)A+b}=B1
B1−A2={(k−1)A+b}−A={(k−2)A+b}=B2
・・・
Bk-1−Ak=(A+b)−A=b=Bk
Bk−Ak+1=b−A=Bk+1<0
であって,仮定より明らかに,B0 >B1>・・・> Bk-1>Bk≧0が成り立ち,且つ,Bk >Bk+1≧0は満たさない.
これより,可減数集合{Aj+1}は,
【0034】
(数9)
{A1}≠φ∧{A2}≠φ∧・・・∧{Ak}≠φ∧{Ak+1}=φ∧{Ak+2}=φ∧・・・
であるから,可減集合{A}は,
【0035】
(数10)
{A}={{A1}≠φ, {A2}≠φ,・・・, {Ak}≠φ, {Ak+1}=φ, {Ak+2}=φ,・・・}
であり,可減集合{A}の要素数|{A}|は明らかに,
【0036】
(数11)
|{A}|=k
となる.即ち,除算B/Aにおける商は,kとなり,仮定に一致する.
この結果を定義に当て嵌めれば,
【0037】
(数12)
|B|−(|{A}|・|A|+a)=B−(kA+a)=(kA+b)−(kA+a)=b−a=0
∴ a=b (0≦b<A)
が成り立つ.
ここで,b=0ならば,明らかにBは,Aの整数倍の正実数であって剰余aが0であり,b>0ならば,Bは,Aで割ると剰余aがbとなることを意味する.□
【0038】
補題5:除算B/Aにおいて,A=B=0の場合
定理1によって証明されている.□
【0039】
ここで,上記定義には,少なくともAとBの何れか一方が負数となるケースを意図的に外して謂わば,四半平面のみを考慮した.そこで,これらの様な負数を含む場合の拡張定義と,その効果を以下に示す.
【0040】
拡張定義:A及び/又はBを負数の実数とするとき,除算B/Aの演算の結果を,以下で定義する.
【0041】
【数13】
以上で置き換えれば,結果は以下のようになる.
各ケースにおける商の符号等は,
【0042】
(数14)
(1)A=−α<0∧B=β>0
(2)A=α>0∧B=−β<0
(3)A=−α<0∧B=−β<0
(4)A=0∧B≠0
(5)A≠0∧B=0
(6)A=0∧B=0
となる.
また,各ケースにおける剰余項の符号等は,
【0043】
(数15)
(1)A=α>0∧B=β>0
(2)A=−α<0∧B=β>0
(3)A=α>0∧B=−β<0
(4)A=−α<0∧B=−β<0
(5)A=0∧B=±β≠0
(6)A≠0∧B=0
(7)A=0∧B=0
となる.
【0044】
§2.x/0=0の証明(特性分数編)
定義:A,Bを実数とするとき,除算B/Aを,特性分数(AB)/(A2)で演算する.このとき,次の定理が成り立つ.
【0045】
定理3:A=0⇒∀B{(AB)/(A2)=0 }(A,B∈R)が成り立つ.
証明:定義より
【0046】
(数16)
A=0⇒∀B{(AB)/(A2)=(0×B)/(02)=(0×B)/(0×0)=0/0=0 } ∴ B/0=0□
【0047】
勿論,A≠0ならば,この特性分数における演算を進めた場合,数学的な解はB/Aに一致することは言うまでもない.但し,当該ステップによる演算の場合,有限桁での計算の取り扱いとなることに起因するコンピュータ計算科学上おけるトレランス問題を内包していることに注意を要する.次に,特性分数(AB)/(A2)の括弧を先に外した場合であっても同様の結論が得られることを示す.
【0048】
別証:
【0049】
(数17)
A=0⇒∀B{(AB)/(A2)=B×A/A2=B×0/02=B×0/0=B×0=0 } ∴ B/0=0□
【0050】
補足1:除算算B/Aの特性分数AB/A2において,
【0051】
(数18)
A≠0⇒AB/A2=B/A∧A=0⇒A/A≠1
であることに注意を要する.
補足2:定理3の証明には,0/0=0を用いている.
【0052】
補題6:双曲関数f(x)=ax/x2(0<a)において,変域を−∞<x<+∞とするとき,値域は−∞<y<+∞となるがx=0の十分近傍,即ち,x→±ε(0<ε<E:εは十分に小さい正の任意定数Eより小さい正の数である)では,
【0053】
【数19】
また,
【0054】
【数20】
となる.勿論,この表記は,
【0055】
【数21】
(0<ε<E:εは十分に小さい正の任意定数Eより小さい正の数である.)
を意味する.
【0056】
これは一見すると,x=0でf(x)はあたかも−∞=+∞かのうように錯覚させるが,極限の概念ではx→+0はあくまでもxを0に近づけるのであって,決して0には到達せず,0点の正側の近傍の域を出ない.従って,明らかに,
【0057】
【数22】
が成り立つ.他方, f(x)においてx=0とすると,
【0058】
【数23】
が成り立つ.このことは,0近傍の±0の辺りでそれぞれ±∞に近づく対極的な発散方向にあったものが,中間点であるf(0)=0となっていて,従って,−∞=+∞問題は解決されていることを意味する.
【0059】
§3.x/0=0(x∈R)の証明(一般分数編)
定理4:A≠0,B∈Rに対するF(B,A)=B/Aについて,F(B,0)=0が成り立つ.
証明:F(B,A)=B/Aにおいて,a≠0に対して,
【0060】
(数24)
F (a,0)= F (a/a,0/a)= F (1,0)
【0061】
(数25)
∴ F (a,0)= F (1,0)
一方,
【0062】
(数26)
F (a,0)= F (a×1,0)=a F (1,0)
従って,
【0063】
(数27)
aF(1,0)=F(1,0)
これより,
【0064】
(数28)
(a−1)F(1,0)=0
【0065】
(数29)
を得る.ここで,
【0066】
(数30)
a≠1⇒F(a,0)=F(1,0)=0
が成り立つ.また,a=1ならば,
【0067】
(数31)
を得る.□
【0068】
§3.回転系の考察
定義:角速度ωで回転する回転系の回転半径rにおける接線速度vを用いてv=rωとする.このとき,次の定理が成り立つ.
【0069】
定理5:回転系の回転中心は回転しない.
証明:底辺をr,高さをvとする直角三角形を考えれば,その傾きω=v/r>0は,定理4より,r=0においてω=0となり,これらr,v,ωにそれぞれ回転半径,接線速度,角速度の物理量を当てると,回転中心は回転しないことがわかる.□
【0070】
定理6:点は回転しない.
証明:点Pが回転すると仮定すると,点Pは角速度ω>0を有することになり,従って接線速度v>0を有することになる.このとき,r=v/ω>0であるから点Pは半径r>0を満たすことになるが,大きさがないという点の定義より,点は半径r=0であるから矛盾する.このような矛盾が生じたのは点Pに角速度ω>0があると仮定したことによる.故に,点Pは角速度ω=0でなければならない.□
【0071】
ω=v/rとx/0=0と微分学の関係
角速度ωで回転する回転系の回転半径rにおける接線速度vを用いれば,v(r)=ωrと表される。vをrについて微分すると,
【0072】
【数32】
ただし,
【0073】
【数33】
であって,Eは十分に小さい正の定数である.
ここで,重要なことは,εは,
【0074】
【数34】
でなければならないということである.これこそが微分の本質である.εは限りなく0に近づけるが決して0ではない.そうでなければ,Δr=0とすることになり,
【0075】
【数36】
となって,微分学が,暗黙に0/0=1としていることになってしまうからである.
【0076】
つまり,微分は,Δr→ε(ε≠0∧0<ε<E:Eはどんなに小さな定数より小さい正の数.)によって成り立ち,0点までは行けない.微分では,或る1点に迫ることは出来ても到達することは出来ない.これは,微分における極限を取るという操作が動的なものであることを意味する.(補足:微分学上では,高次の無限小等は扱えず,極微細領域を厳密に取り扱うことが出来ないということもある.)
【0077】
ところで,図1に示すような3つの直角三角形(A),(B),(C)を考える.
三角形(A)の場合,r<vであってω(A)=v/rで相似形にvを0に近づけて行くと,r<vの関係を保ちながら辺々0に近づき,vが長さ0に達すると,大きさが0の点になる.このとき,傾きは0であり,勿論,r<v=0ゆえにr=0.
【0078】
ここで,ω(A)(B)(C)であるから三角形(A)と同様に三角形(B),(C)も1つの頂点に集約し,最終的には,ω(A)=ω(B)=ω(C)=0に集約されてしまう.微分学は,この頂点まで到達することが出来ないので,あくまでも頂点と頂点に限りなく近い別の点との線形近似直線の傾きを見ているに過ぎない.この結果は,0/0=0に反しない上,微分学とも全く反せず,寧ろ相補的存在とさえ言える.
【0079】
§4.零除算演算処理プログラムの説明
以上の零除算に関する諸定理を前提として,本発明の零除算演算処理プログラムは零除算演算処理が成される.その演算処理について以下に説明をする.
【0080】
本実施形態において零除算演算処理プログラムは,被除数B=0又は,丸めた結果の数値=0を以て被除数Bとすることに対して,除数A=0又は,丸めた結果の数値=0を以て除数Aとする場合,即ち,B/A=0/0の場合,この商Cとして0を返すように構成される。
【0081】
また,本実施形態の零除算演算処理プログラムは,被除数B≠0又は,丸めた結果の数値≠0を以て被除数Bとすることに対して,除数A=0又は,丸めた結果の数値=0を以て除数Aとする場合,即ち,B/A=B/0(B≠0)の場合,この商Cとして0を返すように構成される.
【0082】
更に,目的とする除算b/aに対して,被除数B=数値a×数値b,除数A=数値a×数値aとして,即ち,除算B/Aを行い,これを以て除算b/aを行ったこととし,a=0及び/又はA=0の場合,除算b/aの商Cとして0を返すように構成される.
【0083】
より具体的には,目的とする除算b/aに対して,被除数B=数値a×数値bを演算し,且つ,除数A=数値a×数値aを演算し,その後,被除数Bと除数Aとで除算B/Aを行い,これを以て除算b/aを行ったこととし,a=0及び/又はA=0の場合,除算b/aの商Cとして0を返すように構成される.
【0084】
また,本発明を適用して成る別の実施形態における零除算演算処理プログラムは,目的とする除算B/Aに対して,BからAを繰り返し減じる演算において,それらの各差がそれらの各減算の直前の値又は各差よりも小さくなり且つ非負であるとき,Aを減じる操作を繰り返すことで最小差を得,この最小差を得るに当たってBからAを減じ得る繰り返し数を以て商Cとすることを特徴とし,特に,A=0の場合,BからAを減じた差がBよりも小さくなることがないので繰り返し数が0となることから商Cとして0を返す。
【0085】
また、目的とする除算B/Aに対して,BからAを繰り返し減じる演算において,それらの各差がそれらの各減算の直前の値又は差よりも小さくなり且つ非負であるとき,Aを減じる操作を繰り返すことで最小差を得,この最小差を得るに当たってBからAを減じ得る繰り返し数を以て商Cとすることを特徴とし,この一連の操作によって繰り返し数を最大化した際の非負最小値となる差を,除算B/Aにおける剰余Dとすることを特徴とし,特に,A=0の場合,BからAを減じた差がBよりも小さくなることがないので繰り返し数が0となることから商Cとして0を返すことを特徴とし,更に,剰余項として剰余D=Bを返す。
【0086】
また、目的とする除算B/Aに対して, Bの絶対値|B|からAの絶対値|A|を繰り返し減じる演算において,それらの各差がそれらの各減算の直前の値又は差よりも小さくなり且つ非負であるとき,絶対値|A|を減じる操作を繰り返すことで最小差dを得,この最小差dを得るに当たって絶対値|B|から絶対値|A|を減じ得る繰り返し数をRとし,A又はBの何れか一方のみが負数の場合には繰り返し数Rに対して−1を乗じた数を以て商Cとし,A及びBの両方が負数又は正数の場合には繰り返し数Rを以て商Cとすることを特徴とし,特に,Aが負数で且つ上記最小差dが0でない場合には,当該最小差dに対して−1を乗じた数を以て剰余Dとし,また特に,A=0の場合,絶対値|B|からAを減じた差が絶対値|B|よりも小さくなることがないので繰り返し数が0となることから商Cとして0を返すことを特徴とし,更に剰余項として上記最小差d=|B|となることから剰余D=Bを返す。
【0087】
以上、説明したように本発明の零除算演算処理プログラムによれば,これまで除外されてきた零除算が適正に取り扱い得るようになるが,本発明の主旨を逸脱しない範囲で様々な変更が可能である.なお,上述の全ての証明や説明は,本発明者の完全オリジナルであることをここに付記する.
【0088】
§5.ゼロ除算への極限の導入と極限
a∈R∧a≠0 を満たすaに対して,nを適当な大きさの実数として,aの0除算
【0089】
【数37】
を考える.上式において,nの極限を考える.即ち,
【0090】
【数38】
及び,
【0091】
【数39】
を得る.ただし,上記最後の等式は 0/0=0 を用いている.
ここで,1/n=mとして,
【0092】
【数40】
であって,
【0093】
【数41】
であることに注意する.
【0094】
つまり,極限系は保形系であって,極限においてもその比は変化しないが,極限に対して不連続となる0/0=0などの0除算においては区別が必要となることを示している.また,上記結果は,aが如何なる実数であっても,aの0除算,即ち,a/0は,0/0=0に限りなく接近させ得るということを示している.しかしながら厳密には、極限と定点とには,ギャップがあることに注意を要する.
【0095】
参考:y = f(x) = x を x について微分すると,
【0096】
【数42】
であることからも上記零除算における極限が妥当であることが判る.
【0097】
§6.零除算に対するこれまでの間違った見方について
除算の逆演算としての乗算に見るゼロ除算の不合理性の主張が間違いであることの証明
【0098】
よく見る 0 除算の不合理性を示す(証明)方法の中に,a,b,c∈Rとして,
【0099】
【数43】
の関係が成り立つので,a≠0においてb=0のとき,a=0となり不合理であるゆえに,ゼロ除算,すなわち,a/0は定義されないとされる.これは,具体的には,
【0100】
【数44】
の不合理性を主張するものである.(ここで,(数44)右辺に見る0×cの結果は0であって,0を乗じて結果が0にならない実数は存在しないことは容易に示すことが出来ることに注意を要する.これについては,後述の補題に示す.)
【0101】
しかしながらこの論法は,証明として不完全であって,それどころか間違いであるとさえ言える.それを以下に示す.
【0102】
定理)除算とこの逆演算としての乗算との関係によって,0除算の不合理性を示すことは不可能である.
【0103】
証明)(数43)の関係が一般に成り立つとするためには,以下に見る前提が必要である.つまり,(数43)の関係が成り立つのは,
【0104】
【数45】
の両辺に bを乗じて
【0105】
【数46】
より,(数46)の左辺が
【0106】
【数47】
すなわち,
【0107】
【数48】
が一般に成り立つか否かによることになる.つまるところ,(数43)の関係上0除算において不合理を導くことには,0/0=1が成り立つことを前提としている.
【0108】
しかしながら0/0=1が成り立つかということには証明が必要である.従って,(数43)が一般に成り立つか否かということは,0/0=1 が成り立つか否かに依る.故に,(数43)の関係上,上述の不合理が生じるからという理由だけではゼロ除算を否定することは出来ないといえる.
【0109】
そこで,0/0=1 を仮定し,A=B∈Rとして両辺にBを乗じて
【0110】
【数49】
この両辺からA2を引き
【0111】
【数31】
これを整理し,
【0112】
【数32】
を得る.すると,仮定より明らかに両辺を(A−B)で割ることが可能であって,それは
【0113】
【数33】
であるから,A=Bを踏まえ,直ちに
【0114】
【数34】
を得,従ってAは任意の実数であるからA≠0とすれば,
【0115】
【数35】
を得,またA=0としても(数34)は仮定より,
【0116】
【数36】
であり,この両辺を0で割ると,
【0117】
【数37】
であるから,
【0118】
【数38】
すなわち,
【0119】
【数39】
を得るが,これら(数35)と(数39)は何れも不合理.このような不合理が生じたのは,0/0=1が成り立つと仮定したことによる.ゆえに,0/0=1 は成り立たない.以上によって,(数43)の関係上において,0 除算が不合理であることを示すことは不可能であることが証明された.□
【0120】
本定理によって,除算とその逆演算としての乗算との関係上において,ゼロ除算の不合
理を示すことが不可能であることが明らかとなったが,本定理は,寧ろ,乗算の逆演算として除算を定義することが狭義除算であることを示していると言える.つまり,このような除算定義は,除算 a/b における除数たる bについて,b/b=1 の関係が成り立つ場合に限定されることを示しており,このような限定条件付きの除算は,狭義の除算であると言わざるを得ない.
【0121】
補題7:0(実数ゼロ)を乗じた解が0(実数ゼロ)にならない実数は存在しない.
証明)いま,0を乗じても0にならないが,その他の四則演算や分配法則、結合法則等一般の数に対して適用可能な処理は適用可能であるという特別な量0’が存在したとする.
このとき,
0=0+0
の両辺に0’を乗じると,
0×0’=(0+0)×0’
=0×0’+0×0’
となる.ここで,0×0’=μ≠0と表記することにすれば,上式は,
μ=2μ
これより,
μ=0
を得るが,これは仮定に反する.
つまり,いかなる実数xに対しても0を乗じた解は0,すなわち
x×0=0
でなければならないことを意味する.
勿論,0×0の場合,
0×0=0
でなければならない.□

図1