
数体系とは、言葉を使わずに数を表現するための表記体系であり、つまり、与えられた集合の数を、数字(位取り記数法)またはその他の記号(符号値記数法)を用いて一貫した方法で表現するための数学的表記法である。
同じ記号の並びでも、異なる記数法では異なる数値を表すことがあります。例えば、「11」は、10進数(現在、世界で最も一般的な記数法)では11、2進数(現代のコンピュータで使用されている)では3、1進数(得点を集計する際に使用される)では2を表します。
数字が表す数値は、その数値の値と呼ばれます。また、すべての数字体系が同じ数値セットを表せるわけではありません。例えば、ローマ数字、ギリシャ数字、エジプト数字には、いずれも公式なゼロの表現がありません。
理想的な数字体系は、以下の条件を満たすべきである。
例えば、通常の十進数表現では、ゼロ以外のすべての自然数は、ゼロ以外の数字で始まる有限個の数字列として一意に表現されます。
数値体系は時に「数体系」と呼ばれるが、この名称は曖昧である。なぜなら、実数体系、複素数体系、様々な超複素数体系、 p進数体系など、異なる数の体系を指す可能性があるからである。しかし、そのような体系は本稿の主題ではない。
初期の数字体系は文明によって異なり、バビロニア人は60進法、エジプト人は象形文字、中国人は棒数字を使用していた。マヤ人は独自に20進法(基数20)のマヤ数字を作り、ゼロの記号を含めた。7世紀のブラフマグプタのようなインドの数学者は、ゼロの概念と算術規則を形式化し、ゼロの歴史において重要な役割を果たした。これは後にイスラム世界のアル・フワーリズミーのような学者によって洗練された。これらの数字体系が進化するにつれて、位取り記数の効率性とゼロの導入が現代の数値表現の形成に役立ち、世界の商業、科学、技術に影響を与えた。最初の真の書き言葉による位取り記数法は、ヒンドゥー・アラビア数字体系であると考えられている。この体系は7 世紀までにインドで確立されたが[ 1 ]、数字ゼロの使用がまだ広く受け入れられていなかったため、現代の形にはなっていなかった。ゼロの代わりに、数字の意味を示すためにドットが付けられたり、プレースホルダーとしてスペースが使用されたりすることもあった。ゼロが広く認められるようになった最初の使用は876年である。[ 2 ]元の数字は、数字を表すために使用される記号に至るまで、現代の数字と非常によく似ていた。[ 1 ]
13 世紀までに、西アラビア数字はヨーロッパの数学界で受け入れられました (フィボナッチは彼の『算盤の書』でこれらを使用しました)。当初は抵抗に遭いましたが、ヒンドゥー アラビア数字は、特に銀行や貿易における算術演算の効率性から、ヨーロッパで広く受け入れられるようになりました。15 世紀の印刷機の発明は、印刷された数学のテキストがローマ数字よりもこのシステムを好んだため、その使用の標準化に役立ちました。15 世紀には、それらは一般的に使用されるようになりました。 [ 3 ] 17世紀までに、このシステムは科学の著作で支配的になり、アイザック ニュートンやルネ デカルトなどの人物による数学の進歩に影響を与えました。19 世紀と 20 世紀には、アラビア数字の広範な採用が、世界の金融、工学、および技術開発を促進し、現代のコンピューティングとデジタル データ表現の基礎を形成しました。 20世紀末までに、 世界のほぼすべての非コンピュータ計算はアラビア数字で行われるようになり、アラビア数字はほとんどの文化圏で固有の数字体系に取って代わった。

マヤ数字の正確な年代は不明ですが、ヒンドゥー・アラビア数字体系よりも古い可能性があります。この体系は20進法(基数 20)で、20個の数字があります。マヤ人はゼロを表すのに貝殻の記号を使用しました。[ 4 ]数字は縦書きで、1は下に置かれました。マヤ人は現代の十進区切り記号に相当するものを持っていなかったので、彼らの体系では分数を表すことができませんでした。
タイの数字体系は、数字を表す記号を除いて、ヒンドゥー・アラビア数字体系と同一です。これらの数字の使用は、かつてほどタイでは一般的ではありませんが、アラビア数字と併用して今でも使用されています。[ 5 ]
棒数とは、かつて中国や日本の数学者が用いた数棒の書き方であり、十進法の計算に用いられる位取り記数法である。棒は数盤の上に置かれ、前後にスライドさせることで小数点の位を変えた。紀元3世紀から5世紀にかけて書かれた数学書『素子算経』には、少なくとも紀元前4世紀から使われていたと考えられているこの記数法の詳細な説明が記されている。[ 6 ]当初、ゼロは数としてではなく、空位として扱われていた。[ 7 ]後世の文献では、ゼロと負の数の表現に関する慣例が導入された。ゼロを表す丸い記号〇の使用は、紀元1247年の『九節数学論』で初めて確認されている。[ 8 ]この記号の起源は不明である。四角い記号を修正して作られた可能性がある。[ 9 ]棒数字の子孫である蘇州数字は、今日でも一部の商業目的で使用されています。
最も一般的に使用されている数字体系は十進法です。インドの数学者たちは、整数版であるヒンドゥー・アラビア数字体系を開発したとされています。[ 10 ]クスマプラのアーリヤバタは5世紀に位取り記法を開発し、1世紀後にブラフマグプタはゼロの記号を導入しました。この体系は、インドとの商業的および軍事的活動により、アラビアなどの周辺地域に徐々に広まりました。中東の数学者たちは、シリアの数学者アブル・ハサン・アル・ウクリディシが952~953年に著した論文に記録されているように、10の負のべき乗、つまり分数を含むように体系を拡張し、アラビア数字に関する最古の論文も書いたシンド・イブン・アリーによって小数点表記が導入されました。その後、ヒンドゥー・アラビア数字体系は商人の交易によりヨーロッパに広まり、ヨーロッパで使用されている数字は、アラブ人から学んだためアラビア数字と呼ばれています。
最も単純な数体系は単項数体系であり、すべての自然数は対応する数の記号で表されます。たとえば、記号/を選択した場合、7 は///////で表されます。タリーマークは、現在でも一般的に使用されているこのような体系の一例です。単項数体系は通常、小さな数に限定されますが、理論計算機科学では重要な役割を果たしています。データ圧縮でよく使用されるエリアスガンマ符号化は、単項を用いて二進数の長さを表すことで、任意のサイズの数値を表現します。
単項表記は、特定の新しい値に異なる記号を導入することで省略できます。これらの値は通常10のべき乗です。例えば、/が1、−が10、+が100を表す場合、304は+++ ////と簡潔に、123は+ − − ///とゼロを使わずに表すことができます。これは符号値表記と呼ばれます。古代エジプトの数字体系はこのタイプであり、ローマ数字体系はこの考え方を応用したものです。
他のシステムでは、記号の繰り返しを表すために特別な略語を使用します。たとえば、アルファベットの最初の9文字をこれらの略語として使用し、Aを「1回」、Bを「2回」などとすると、304という数字はC+D/と書くことができます。これらの略語の数は、システムの基数と呼ばれることもあります。このシステムは、中国語の数字や、中国語を基にした他の東アジアの数字を書く際に使用されます。英語の数字体系は、例えば「three hundred [and] four」のように、このタイプであり、他の話し言葉の数字体系も同様で、どのような書き言葉を採用しているかは関係ありません。多くの言語では、基数やその他の特徴が混在して使われています。例えば、フランス語では 79 はsoixante dix-neuf ( 60 + 10 + 9 ) であり、ウェールズ語ではpedwar ar bymtheg a thrigain ( 4 + (5 + 10) + (3 × 20) ) またはやや古風なpedwar ugain namyn un ( 4 × 20 − 1 ) です。英語では、 「87 年前」を「four score and seven years ago」と表現した有名なゲティスバーグ演説のように、「four score less one」となります。
位取り記数法(または位値表記法)は、基数または基数によって分類されます。基数とは、その記数法で使用される数字と呼ばれる記号の数です。10進数では 、0、 ...、9の10種類の数字が使用され、数字の位置は、その数字が乗算される10のべき乗を示すために使用されます。例えば、304 = 3×100 + 0×10 + 4×1、より正確には3×10 2 + 0×10 1 + 4×10 0 です。他の記数法では使用されないゼロは、この記数法ではべき乗を「スキップ」するために使用されます。インドで発祥し、現在では世界中で使用されているヒンドゥー・アラビア数字体系は、位取り記数法の 10進数です。
位取り記数法では、以前の加法記数法よりも算術がはるかに簡単です。さらに、加法記数法では10の異なるべき乗を表すために多数の異なる記号が必要ですが、位取り記数法では10進法を使用する場合、10種類の異なる記号が必要です。 [ 11 ]
位取り十進法は、人間の書き言葉で普遍的に使用されています。[ 12 ]また、多くのシステムでは、数字をグループ化し、3桁の十進数を1桁とみなすことで、基数1000も使用されています。これは、非常に大きな数に使用される一般的な表記1,000,234,567の意味です。
コンピュータでは、主要な数値システムは、2進数システム、つまり基数 2 の位取り記数法に基づいており、0 と 1 の 2 つの数字を使用します。2 進数を 3 つ (8進数システム) または 4 つ ( 16 進数システム)でグループ化して得られる位取り記数法が一般的に使用されます。たとえば、非常に大きな整数の場合、GNU 多倍長演算ライブラリ(GMP) では、マシン ワードの長さである 32 または 64 で 2 進数をグループ化する基数 2 32または 2 64が使用されます。
特定の生物システムでは、単項符号化システムが採用されています。鳥の歌の生成を担う神経回路では、単項数が使用されます。[ 13 ]鳴禽類の脳内で、鳥の歌の学習と生成の両方に関与する核は、高声中枢(HVC)です。鳥の歌のさまざまな音符に対する指令信号は、HVCのさまざまなポイントから発せられます。この符号化は、その固有の単純さと堅牢性から、生物回路の戦略である空間符号化として機能します。
数字や記号を用いて数を表す際に用いられる数字は、算術数(0、1、2、3、4、5、6、7、8、9)と幾何数(1、10、100、1000、10000 …)の2種類に分けられます。符号値体系では幾何数のみが用いられ、位取り記数法では算術数のみが用いられます。符号値体系では、算術数は繰り返しによって作られるため(イオニア式を除く)、算術数は用いられません。位取り記数法では、幾何数は位置によって作られるため、幾何数は用いられません。話し言葉では、算術数と幾何数の両方が用いられます。
コンピュータサイエンスの一部の分野では、修正された基数k の位取り記数法が使用され、これは全単射記数法と呼ばれ、数字 1、2、 ...、k ( k ≥ 1 ) と、空の文字列で表されるゼロを使用します。これにより、すべてのそのような数字列の集合と非負整数の集合との間に全単射が確立され、先頭のゼロによって引き起こされる一意性の欠如が回避されます。全単射基数k記数法は、 p進数と混同しないように、k進記数法とも呼ばれます。全単射基数1 は単項記数法と同じです。
位取り記数法(基数b、1より大きい自然数bは基数または基底と呼ばれる)では、0を含む最初のb個の自然数に対応するb個の基本記号(または数字)が使用されます。残りの数字を生成するには、図中の記号の位置が使用されます。最後の位置にある記号は独自の値を持ち、左に移動するにつれてその値はb倍されます。
例えば、10進法では、数字4327は( 4 × 10³ ) + ( 3 × 10² ) + ( 2 ×10¹ ) + ( 7 ×10⁰ )を意味し、10⁰ = 1であることに注意してください。
一般に、基数がbの場合、基数bの数字体系では、数をa n b n + a n − 1 b n − 1 + a n − 2 b n − 2 + ... + a 0 b 0の形式で表し、列挙された桁a n a n − 1 a n − 2 ... a 0を降順に書きます。桁は 0 からb − 1までの自然数です。
(この文章のように)複数の基数について言及しているテキストがあり、曖昧さがある場合は、基数( 10進数で表されます)を数字の右側に添え字として追加します。例:数字基数。文脈で特に指定がない限り、添え字のない数字は10進数とみなされます。
ドットを使って数字を2つのグループに分けることで、位取り記数法で分数を表すこともできます。例えば、 2進数10.11は、1×2 1 + 0×2 0 + 1×2 −1 + 1×2 −2 = 2.75を表します。
一般に、b基数系の数は次の形式をとります。
数値b kとb − kは対応する桁の重みです。位置kは対応する重みwの対数です。最も使用頻度の高い位置は、数値の桁数に近い。
重量を表すために単項式で必要な正の字の数はwであった。位取り記数法では、重量を表すのに必要な桁数はわずかである。k ≥ 0の場合。たとえば、重さ 1000 を表すには 4 桁が必要です。位置を表すのに必要な桁数は(1、10、100、…の位は、10進数の例を簡略化するためにのみ使用しています。)
数が有限展開または循環展開を持つのは、それが有理数である場合に限ります。これは基数に依存しません。ある基数で有限展開となる数は、別の基数では循環展開となる場合があります(したがって、0.3 10 = 0.0100110011001... 2)。無理数は、すべての整数基数において非周期性(無限個の非循環桁を持つ)のままです。したがって、たとえば基数2 では、π = 3.1415926... 10 は非周期的な 11.001001000011111... 2と書くことができます。
共通する数字の上にオーバースコアnまたはドットṅを付けるのは、循環する有理数展開を表す慣例です。したがって、次のようになります。
b = p が素数である場合、左への展開が止まらないp進数を定義することができます。これらはp進数と呼ばれます。
また、数字が正または負になるような基数bの変形を定義することも可能であり、これは符号付き数字表現と呼ばれます。
より一般的なのは、混合基数表記(ここではリトルエンディアンと表記)を使用する方法です。のためになど
これはPunycodeで使用されており、その一側面は、任意のサイズの非負整数のシーケンスを、区切り文字のないシーケンスの形式で表現することです。36 個の数字のコレクション (a–z と 0–9) から選択され、それぞれ 0–25 と 26–35 を表します。また、いわゆるしきい値 ()数字の各位置で固定されている。(数値内の特定の位置において)対応するしきい値よりも低い値これは、それが最上位桁であることを意味します。したがって、文字列ではこれが数値の終わりであり、次の記号(存在する場合)は次の数値の最下位桁です。
例えば、最初の桁のしきい値がb (つまり 1)の場合、 a (つまり 0) は数値の終わり (1 桁しかない) を示すので、1 桁を超える数値では、最初の桁の範囲は b–9 (つまり 1–35) のみとなり、したがって重みb 1は 36 ではなく 35 になります。より一般的には、t n がn番目の桁のしきい値である場合、以下を示すのは簡単です。2桁目と3桁目の閾値をc(つまり2)とすると、2桁目の範囲はa–b(つまり0–1)で、2桁目が最も重要です。一方、3桁目がある場合は、範囲はc–9(つまり2–35)になります。一般に、任意のnに対して、( n + 1)番目の桁の重み は、前の桁の重みに(36 − n番目の桁の閾値)を掛けたものです。したがって、2番目のシンボルの重みは3番目のシンボルの重みは。
したがって、最大3桁の数字の並びは次のようになります。
a (0), ba (1), ca (2), ..., 9 a (35), bb (36), cb (37), ..., 9 b (70), bca (71), ..., 99 a (1260), bcb (1261), ..., 99 b (2450).
通常のnベースの数字体系とは異なり、 9bのような数字があり、9とbはそれぞれ35を表します。しかし、 acとacaは許可されていないため、その表現は一意です。最初のaはこれらの数字のそれぞれを終了させてしまいます。
しきい値を柔軟に選択できるため、さまざまなサイズの数字の出現頻度に応じて桁数を最適化することが可能です。
すべての閾値が 1 に等しい場合、それは全単射的な数体系に対応し、ゼロは非ゼロの桁を持つ数値の区切り文字に対応します。
ゼロは数とみなされていたが、中国では空席が