第27講 n進数演算−−−加法その1
第2話 どうしてn進数演算?
巨大素数がITのセキュリティを守っているし、
整数論が現代最先端物理学の基礎になっているにしても、
なぜ、第27講のテーマ名がn進数演算なのでしょうか。
この問いに対する答は、
大変簡単です。
巨大整数演算の研究とn進数(n進法)の演算研究は、
実は全く同一のものなのです。
というより、n進法演算の特別な場合が、
巨大整数演算なのです。
皆さんの頭には???が浮かんでいることでしょう。

VBAで普通に、プログラミングしたのでは
16桁ぐらいしか扱えません。
Ulongを使ったとしても19桁当たりが限界です。
300桁等の巨大整数は、
もちろん無理です。
Ulongの限界を遙かに超えて、
1000桁、1万桁などはVBAで扱うことは不可能なのでしょうか。
そんなことはありません。
理論的には、10万桁の整数でも扱うこともできます。
どうやって?
答は、配列を利用するです。
例えば、Ulong型の配列
Dim h(1000) As Ulong
を用意して、
h(0)には、1桁目から18桁目までのデータを入れ、
h(1)には、19桁目から36桁目までのデータを入れ、
h(2)には、37桁目から54桁目までのデータを入れ、
       ・・・・・
       ・・・・・
       ・・・・・
h(999)には、(18×999+1)桁目から(18×1000)桁目までのデータを入れてやれば、
18000桁の整数が扱えることになります。

桁数が大きすぎると、頭が混乱しますので、
Dim h(10) As Byte
として、
h(0)には、1の位の数字、
h(1)には、十(2つ目)の位の数字、
h(2)には、百(3つ目)の位の数字、
       ・・・・・
       ・・・・・
       ・・・・・

h(9)には、10個目の位の数字と入れていけば、
10桁の数字が扱えます。
ただ、問題はコンピュータに加法や減法などの繰り上がり、
繰り下がり等の約束事を教えてやらなければならないのです。
加法の約束事・減法の約束事・乗法の約束事・除法の約束事
を教えてあげないと、
配列を利用した演算はできないことになります。
実は、配列を利用した演算規則は、
n進数(n進法)の演算規則と同じです。
ですから、nをグローバル変数(または、グローバル定数)としておいて、
nの値を2とすれば、2進法演算になるし、
nの値を10000とすれば、10000桁の整数の演算になります。
n=10000としておいて、配列の要素数を10000とすれば、
扱える桁数は
10000×10000=100000000桁ということになります。
nがどのように変わっても、
結局はn進数=n進法の計算規則です。

以上より、巨大整数演算を研究するには、
n進数演算を研究すればよいことが分かります。
つまり、
巨大整数演算⊂n進数演算
です。
n進法演算の特別な場合が巨大整数演算(10000進法演算など)なのです。

いきなり、10000進法演算を考えたのでは頭が混乱します。
本質が同じなら、2進法演算を研究すべきことがお分かりかと思います。
単純な問題から複雑な問題へ研究していくことが方便であるからです。
2進法演算の研究から始めたいところですが、
その前に2進法=2進数とは何なのか?
を説明しなければなりません。


第1話へ 第3話へ

004

eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
Visual C++ によるC言語 入門 C++ 入門 基礎から応用まで
本サイトトップへ