黄金进制

黄金进制(英语:Golden ratio base)是使用黄金比φ作为底数进位制,其中 是一个无理数。在英语中,黄金进制也叫做base-φgolden mean basephi-basephinary。在黄金进制下,任何非负整数都约定使用0和1表示,并且不连续使用两个1,这叫做黄金进制的标准形。任何黄金进制的数凡是出现11,就一定可以根据黄金比φ的性质 φ+1=φ2 表示成标准形。例如,11φ = 100φ

记数系统
印度-阿拉伯数字系统
西方阿拉伯数字
阿拉伯文数字
高棉数字
孟加拉数字
印度数字
波罗米数字
泰语数字
汉字文化圈记数系统
中文数字
闽南语数字
越南语数字
算筹
日语数字
朝鲜语数字
苏州码子
字母记数系统
阿拉伯字母数字
亚美尼亚数字
西里尔数字
吉兹数字
希伯来数字
希腊数字
阿利耶波多数字
其它记数系统
雅典数字
巴比伦数字
古埃及数字
伊特拉斯坎数字
玛雅数字
罗马数字
熙笃会数字
因努伊特数字
底数区分的进位制系统
1 2 3 4 5 6 8 9 10 11 12 15 16 18 20 24 30 32 36 60 64

虽然黄金进制使用无理数作为基底,任何非负整数在黄金进制下都可以表示成有限小数。所有有理数则都可以表示成循环小数。所有数的有限表示都是唯一的,但和十进制一样,整数和有限小数都可以写成无限小数的形式,如十进制中的 1 = 0.99999…

举例

十进制数 用φ的表示 φ进制数
1 φ0 1     
2 φ1 + φ−2 10.01  
3 φ2 + φ−2 100.01  
4 φ2 + φ0 + φ−2 101.01  
5 φ3 + φ−1 + φ−4 1000.1001
6 φ3 + φ1 + φ−4 1010.0001
7 φ4 + φ−4 10000.0001
8 φ4 + φ0 + φ−4 10001.0001
9 φ4 + φ1 + φ−2 + φ−4 10010.0101
10 φ4 + φ2 + φ−2 + φ−4 10100.0101

转化到标准形

211.01φ是φ进制数,但并非标准形,因为它含有“11”和“2”,以及1=-1。我们可以根据以下公式将它转化到标准形:

  • 011φ = 100φ
  • 0200φ = 1001φ
  • 010φ = 101φ

公式的代换过程对结果没有影响。具体过程如下:

  211.01φ
  300.01φ     011φ → 100φ
 1101.01φ     0200φ → 1001φ
10001.01φ     011φ → 100φ (again)
10001.101φ    010φ101φ
10000.011φ    010φ101φ (again)
10000.1φ      011φ → 100φ (again)

任意非标准形正数都可以唯一地标准化。这样处理之后如果第一位是负数,此时需要将每一位数都变成相反数,重新标准化并加上负号。例如:

101φ = -101φ = -110.1φ = -1.1φ = -10φ

整数的黄金进制表示

通常所说的整数在黄金进制下是有限小数。例如,整数5转化成黄金进制的过程如下所示:

  1. 5以下φ的最高次幂是 φ3 = 1 + 2φ ≈ 4.236;
  2. 与5求差为5 - (1 + 2φ) = 4 - 2φ ≈ 0.763;
  3. 0.763以下最大的φ的幂是 φ-1 = -1 + 1φ ≈ 0.618;
  4. 再次求差,4 - 2φ - (-1 + 1φ) = 5 - 3φ ≈ 0.145
  5. 0.145以下最大的φ的幂是 φ-4 = 5 - 3φ ≈ 0.145;
  6. 再次求差得到0
  7. 于是: 5 = φ3 + φ-1 + φ-4

5用φ进制表示就是1000.1001φ

这里其实利用了以下事实:凡φ的幂都可以用整数ab表示成 a + b φ 的形式。因为 φ2 = φ + 1 、φ-1 = -1 + φ 。如此一来,数之间比大小就容易了。实际上,a + bφ > c + dφ 和 2(ac) - (db) > (db) × √5 等价。只需将 φ = (1+√5)/2 代入,稍作处理就可得到这一结果。

黄金进制下的有限小数不全是整数,还包括 元素

数的表示不唯一

和其他进位制相同,黄金进制中也可以用多种形式表示同一个数。就像10进制中0.999...=1,φ进制中0.1010101…φ=1。

  • 使用非标准形变换:1 = 0.11φ = 0.1011φ = 0.101011φ = … = 0.10101010…φ
  • 使用等比级数展开:1.0101010…φ 等于
     
  • 错项相减:φ2 x - x = 10.101010…φ - 0.101010…φ = 10φ = φ 所以 x = φ/(φ2 - 1) = 1

这种不唯一是进位制的特征,1.0000和0.101010…都是标准形。一般地,φ进位制中数最后的1用01循环代替即可得到另一标准形。

有理数的黄金进制表示

在黄金进制中,可以用有限小数或者循环小数表示任意非负有理数,以及从有理数√5生成的Q[√5]中的非负元素。其中

 

相反地,黄金进制中的有限/循环小数都是Q[√5] 中的非负元素。例如:

  • 1/2 ≈ 0.010 010 010 010 ... φ
  • 1/3 ≈ 0.00101000 00101000 00101000... φ
  • √5 = 10.1φ
  • 2+(1/13)√5 ≈ 10.010 1000100010101000100010000000 1000100010101000100010000000 1000100010101000100010000000 ...φ

对这一点的证明与十进制中类似。在黄金进制下进行长除法。因为其余数的可能值是有限个,所以必定会出现循环。例如 1/2 = 1/10.01φ = 100φ/1001φ 进行长除法如下:

               .0 1 0 0 1
        ________________________
1 0 0 1 ) 1 0 0.0 0 0 0 0 0 0 0
            1 0 0 1                        代换 10000 = 1100 = 1011
            _______                        于是 10000-1001 = 1011-1001 = 10
                1 0 0 0 0
                  1 0 0 1
                  _______
                      etc.

反之,黄金进制中的循环小数都属于Q[√5]。因为循环部分形成了等比级数,对它求和即可得到Q[√5]的元素。

无理数的黄金进制表示

常见无理数的黄金进制表示如下:

  • π ≈ 100.010010101001000101010100 …φOEIS数列A102243
  • e ≈ 100.000010000100100000000100 …φOEIS数列A105165
  • √2 ≈ 1.0100000101001010010000000101 …φOEIS数列A352678
  • φ =   = 10φ(在此计数系统为整数)
  • √5 = 10.1φ

四则运算

在黄金进制中可以和其它进制一样进行四则运算。加法、减法、乘法的计算方法如下:

加、减、乘

先计算,后转化
即先对每一位按十进制数的方法计算,但不进行进位、借位,计算完再转化为标准形。例如:
2+3 = 10.01 + 100.01 = 110.02 = 110.1001 = 1000.1001
2×3 = 10.01 × 100.01 = 1000.1 + 1.0001 = 1001.1001 = 1010.0001
7-2 = 10000.0001 - 10.01 = 10010.0101 = 1110.0101 = 1001.0101 = 1000.1001
避免0和1以外的数
更加自然的做法是将数转化为非标准形,以避免出现需要进位和借位的 1+1 或 0-1 。例如:
2+3 = 10.01 + 100.01 = 10.01 + 100.0011 = 110.0111 = 1000.1001
7-2 = 10000.0001 - 10.01 = 1100.0001 - 10.01 = 1011.0001 - 10.01 = 1010.1101 - 10.01 = 1000.1001

除法

除了整数以外,所有有理数都不能用有限位φ进制数表示。也就是说,黄金进制中能用有限小数表示的数只有整数或者Q[√5]中的无理数。两个整数相除得到有理数的情况已经在上文说明了。

斐波那契进制

斐波那契进制(Fibonaccimal Base)是与黄金进制关系紧密的计数系统。它只用0和1表示数,每个数位的位值对应斐波那契数[1]。和黄金进制一样,其标准形也不连续使用两个1。如:

30 = 1×21 + 0×13 + 1×8 + 0×5 + 0×3 + 0×2 + 1×1 + 0×1 = 10100010fib.

由于最末位始终为零,因此有时会将之省去[1],而省去后的结果则与齐肯多夫表述法相同[2]

参见

  • 进位制

外部链接

参考资料

  1. ^ 1.0 1.1 Fibonaccimal Base. onlinejudge.org. [2022-10-06]. (原始内容存档于2022-10-09). 
  2. ^ Sloane, N.J.A. (编). Sequence A014417 (Representation of n in base of Fibonacci numbers (the Zeckendorf representation of n)). The On-Line Encyclopedia of Integer Sequences. OEIS Foundation.