雙射記數
此條目需要精通或熟悉數學的編者參與及協助編輯。 (2023年1月5日) |
雙射記數系統(Bijective numeration)是一種表示數字的位置數值系統,每個非負整數都可使用有限數字串表示。該名稱「雙射」指的是非負整數集和用有限符號集的有限字符串集間存在雙射(即一一對應)。
大多數數字系統,例如十進制,都不是雙射的;因為不止一串數字可以表示同一個正整數:添加前導零不會改變表示的值,例如「1」、「01」、「001」都表示數字「1」。而一進制因為只有一個數字「1」所以必然「是」雙射的。
雙射進制-k記數系統是一個雙射進位制。使用集合{1, 2, ..., k}(其中k≥1)編碼正整數;值的位置定義為「k」的冪倍數。Smullyan (1961)稱此為k-adic:用有限非零數字串表示普通整數的系統,而p-adic數是包含整數作為子集的一個數學值系統,並且可能需要無限數字序列表示。
定義
編輯雙射進位制使用集合{1, 2, ..., k}(其中k≥ 1)來唯一編碼每個非負整數:
- 零由空字符串表示。
- 由非空數字串表示的整數
- anan−1 ... a1a0 = an kn + an−1 kn−1 + ... + a1 k1 + a0 k0.
- 表示整數的數字串m>0是anan−1 ... a1a0
- 當
- 且
- 是不小於的最小整數x(上取整函數)
相反,標準進位制可用類似遞歸算法定義當
擴展到整數
編輯在 進制, the bijective base- numeration system could be extended to negative integers in the same way as the standard base- numeral system by use of an infinite number of the digit , where , represented as a left-infinite sequence of digits . This is because the Euler summation
meaning that
and for every positive number with bijective numeration digit representation is represented by . For base , negative numbers are represented by with , while for base , negative numbers are represented by . This is similar to how in signed-digit representations, all integers with digit representations are represented as where . This representation is no longer bijective, as the entire set of left-infinite sequences of digits is used to represent the -adic integers, of which the integers are only a subset.
性質
編輯對於 進制:
- 表示非負整數n的雙射k進位位數是 [1],與 相比,k進制如果是「1」,位數就是n。
- 最小可表示為長度 的雙射k進制數字的非負整數是 。
- 最大可表示為長度 的雙射k進制數字的非負整數是 ,相當於 或 。
- 非負整數n的雙射k進制可和普通進制k相同,當且僅當普通進制不含數字「0」,或者等效地,雙射進制既不是空字符串也不包含數字k。
對於進制 ,
雙射一進制 | λ | 1 | 11 | 111 | 1111 | 11111 | 111111 | 1111111 | 11111111 | 111111111 | 1111111111 | 11111111111 | 111111111111 | 1111111111111 | 11111111111111 | 111111111111111 | 1111111111111111 | ... |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
雙射二進制 | λ | 1 | 2 | 11 | 12 | 21 | 22 | 111 | 112 | 121 | 122 | 211 | 212 | 221 | 222 | 1111 | 1112 | ... |
二進制 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | 10000 | ... |
雙射三進制 | λ | 1 | 2 | 3 | 11 | 12 | 13 | 21 | 22 | 23 | 31 | 32 | 33 | 111 | 112 | 113 | 121 | ... |
三進制 | 0 | 1 | 2 | 10 | 11 | 12 | 20 | 21 | 22 | 100 | 101 | 102 | 110 | 111 | 112 | 120 | 121 | ... |
雙射八進制 | λ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | ... |
八進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 | ... |
雙射十進制 | λ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | 11 | 12 | 13 | 14 | 15 | 16 | ... |
十進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | ... |
雙射十二進制 | λ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | 11 | 12 | 13 | 14 | ... |
十二進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | 10 | 11 | 12 | 13 | 14 | ... |
雙射十六進制 | λ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | G | ... |
十六進制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 | ... |
例
編輯- 雙射五進制的34152 = 3×54 + 4×53 + 1×52 + 5×51 + 2×1 = 2427(十進制)
- 雙射十進制119A(A代表數值10) = 1×103 + 1×102 + 9×101 + 10×1 = 1200(十進制)
- 雙射11進制B = 11(十進制)
- 雙射35進制Z = 35(十進制)
雙射十進制
編輯雙射十進制系統是一種以 10 為底的位置數字系統,不使用數字來表示零,而用一個數字代表十,例如 A。
與傳統的十進制一樣,每個數字位置代表十的冪,因此例如 123 是「一百,加上兩個十,加上三個一」。 所有在傳統十進制中僅用非零數字表示的正整數(例如 123)在不帶零的十進制中具有相同的表示形式。 使用零的必須重寫,例如10變為A,常規20變為1A,常規100變為9A,常規101變為A1,常規302變為2A2,常規1000變為99A,常規1110變為AAA,常規2010變為19AA , 等等。
不帶零的十進制的加法和乘法本質上與傳統十進制相同,只是當位置超過十時而不是超過九時發生進位。 因此,要計算 643 + 759,有十二個個位(在右邊寫 2,十位進位 1)、十個十(記為 A,不需要進位到百位)、十三個百(在右邊寫 3,進位 1)、和一個千(寫 1),得到結果 13A2 而不是傳統的 1402。
雙射二十六進制
編輯在雙射二十六進制系統中,可以使用拉丁字母A到Z來表示1到26。(A=1,B=2,C=3,...,Z=26)
通過選擇這種表示法,數字序列(從 1 開始)開始為 A、B、C、...、X、Y、Z、AA、AB、AC、...、AX、AY、AZ、BA、BB、BC,...
每個數字位置代表二十六的冪,例如數字 ABC 代表十進制的 1 × 262 + 2 × 261 + 3 × 260 = 731。
許多電子表格(包括 Microsoft Excel)使用此系統為電子表格的列分配標籤,如 A、B、C、...、Z、AA、AB、...、AZ、BA、...、ZZ、AAA 。在 Excel 2013 中,最多可以有 16384(214) 列,從 A 到 XFD。[3] 該系統的一個變體用於命名變星。[4] 它可以應用於任何需要使用字母進行系統命名的問題,同時使字符串儘可能短。
歷史
編輯每個非負整數在雙射 k (k ≥ 1) 進制中都有唯一的表示,這一事實是一個已被多次重新發現的「民間定理」。 早期的例子是 Foster (1947) (對於 k = 10),以及 Smullyan (1961) 和 Böhm (1964) (對於所有 k ≥ 1)。Smullyan 使用該系統提供邏輯系統中符號串的哥德爾編號; Böhm 使用這些表示以程式語言 P′′ 執行計算。Knuth (1969) 提到了 k = 10 的特殊情況,Salomaa (1973) 討論了 k ≥ 2 的情況。Forslund (1995) 似乎是另一個重新發現,並提出假設說如果古代計數系統使用雙射 k 進制,可能由於人們普遍不熟悉這一系統,導致考古文獻中並未發現這一點。
注釋
編輯- ^ How many digits are in the bijective base-k numeral for n?. Stackexchange. [22 September 2018].
- ^ Forslund (1995).
- ^ Harvey, Greg, Excel 2013 For Dummies, John Wiley & Sons, 2013, ISBN 9781118550007.
- ^ Hellier, Coel, Appendix D: Variable star nomenclature, Cataclysmic Variable Stars - How and Why They Vary, Praxis Books in Astronomy and Space, Springer: 197, 2001, ISBN 9781852332112.
參考
編輯- Böhm, C., On a family of Turing machines and the related programming language, ICC Bulletin, July 1964, 3: 191.
- Forslund, Robert R., A logical alternative to the existing positional number system, Southwest Journal of Pure and Applied Mathematics, 1995, 1: 27–29, MR 1386376, S2CID 19010664.
- Foster, J. E., A number system without a zero symbol, Mathematics Magazine, 1947, 21 (1): 39–41, JSTOR 3029479, doi:10.2307/3029479.
- Knuth, D. E., The Art of Computer Programming, Vol. 2: Seminumerical Algorithms 1st, Addison-Wesley, Solution to Exercise 4.1-24, p. 195, 1969. (Discusses bijective base-10.)
- Salomaa, A., Formal Languages, Academic Press, Note 9.1, pp. 90–91, 1973. (Discusses bijective base-k for all k ≥ 2.)
- Smullyan, R., 9. Lexicographical ordering; n-adic representation of integers, Theory of Formal Systems, Annals of Mathematics Studies 47, Princeton University Press: 34–36, 1961.