当前位置:在线查询网 > 在线百科全书查询 > 变进制数

变进制数_在线百科全书查询


请输入要查询的词条内容:

变进制数


变进制数是由常进制数推广的,我们不一定要用固定的数值作为进位值,设有正整数序列B1,B2,...,Bn,...,其中Bi >=2,我们就可以把它当作各个位置上的进位值,即第i 个位置满Bi 进一,添加B0 =1,则权重Pi=B0*B1*...*Bi-1 , i >=1,变进制数An,An-1,An-2,...,A1,其中0=< Ai <= Bi -1, 1<= i <=n,其数值的计算方法仍然是上述K 的公式。 实际上,我们日常生活中有很多变进制数,比如时间的描述“1年9个月8天6小时6分30秒”,假定1年有12个月,1个月30天。



常进制数


在我们的学习、生活中常进制数的应用非常广泛。例如:十进制数、二进制数等等。实际上他们是以一个固定的整数作为进位值的。一般的,r 进制数就是每个位置满r 进一。设有r 进制数An,An-1,An-2,...,A1,其中0=< Ai<= r-1, 1<= i<=n,i位置的权重Pi=r^(i-1)。其对应的数值K 计算方法为:

K = ΣAi*Pi= An*Pn+An-1*Pn-1+...+A1*P1

阶乘数系


最特殊、最简单的变进制数,就是取Bi=i +1, i >=1,则Pi=1*2*...*(i-1)*i =i !,其权重恰好是整数的阶乘,因而被称为阶乘数。阶乘数第i 个位置最大数值是i

例,4位的最大阶乘数是4321,为了区分其他进制,这里用字母f作为下标:(4321)_f ,则:

(4321)_f = 4*4!+3*3!+2*2!+1*1! = 119 = 120-1 = 5!-1 =(10000)_f -1

上式在10进制中相当于:9999 = 9*10^3+9*10^2+9*10+9*1 = 10000-1

我在2006年探讨全排列的排序问题时也独立的发现变进制数和阶乘数系,后来在一本数值计算的书上看到了这个概念,估计这个概念应该出现很久了,因为不常用而被忽视。

全排列和阶乘数系关系


我们知道n个不同的元素有n!个排列,我们这里考虑数字1,2,...,n的排列。现在我们要给他们一个排序方法,也即是找到他们和自然数列0,1, 2, ..., n!-1 的一个对应,习惯上的,我们按照排列逆序的程度来排序。我们来逐一考虑,n=1时,只有1中排列,n=2时,我们要把2和1排在一起,则2可以排在1的后面或前面,有两种选择,当n=3时,1和2两个数字有三个空可以插入数字3,而3选定一个位置时,1和2又有2!种排列,我们可以这样,数字3每变动一次(从后向前移),小于它的所有数就轮换了一个周期(全排列)。这6个排列顺序如下:

(数字3在第3个位置)123, 213, (数字3在前移了1位)132, 231, (数字3又前移了1位)312, 321

数字3每前移一个位置,就经过了2!个排列。

一般的,按照这个方法,我们就可以把n!个排列排出来,在这种排列方法中,我们发现数字i 每前移一次,就经过了(i-1)! 个排列,也就是说“数字i 的位置的权重是(i-1)! ”,而i 移动的次数取决与在该排列中

数字i 右侧小于i 的数字的个数(逆序)


例:有排列 35241 ,我们从数字2开始看,2右侧有1个比它小的数字,数字3右侧有2个,数字4右侧有1个,数字5右侧有3个,我们将这些逆序数倒着写下来是:3,1,2,1,则该序列在我们这种排序方法中的位置序号是:

3*(5-1)!+1*(4-1)!+2*(3-1)!+1*(2-1)! = 3*4!+1*3!+2*2!+1*1! = 83 注意,排序是从0开始计数的。

我们就发现一个排列的逆序数组成的数列恰好是一个阶乘数,此例中就是(3121)_f 。特殊的排列1234...n 对应的是(0, 0,..., 0)_f = 0 即是第一个,n(n-1)...21对应的是(n-1, n-2, ..., 2, 1)_f = n!-1,即是最后一个,完全符合我们的排序意图。该阶乘数各个位置数字的和就是原排列的总的逆序数。多提一点,鉴于这种逆序数列和阶乘数的关系,我希望几年后,组合数学书上的逆序数列可以修改成我这里的定义方式:数字i 右侧小于i 的数字的个数。而不是:i 左侧大于i 的数字的个数。当然,大多数意义下两者是等效的。

综上所述:n个元素的全排列可以和n-1位的阶乘数一一对应起来。

阶乘数系的小数推广和负数的阶乘


进一步考虑,我们可以扩展出阶乘数系的小数计数法。实际上我们的任务是去划分单位1,与整数计数法相似,可以定义一个大于等于2的整数列C1,C2,...,Cn,...作为划分的等分数,这里就不做阐述了,我们这里一种特殊的扩展方法:对称扩展法,即令Ci =Bi , i >=1。对比常进制数的小数计数法,小数实际上是每次把当前长度10等分,于是,在阶乘数的计数法中Ci =Bi =i+1 , i >=1,我们最初我们将单位1进行2等分,再对每一份(长度是1/2)进行3等分(变成了1/6),如此下去,无穷的划分。于是,第i 次划分后,每一份的长度是1/(i+1)!, 这即是对称扩展后小数点后第i 位置的权重,i个位小数的最大数值是i。小数点后第i 位置的权重P-i = 1/(i +1)! , i >=0。

例如:最大的4位小数是(0.1234)_f , (0.1234)_f = 1/2!+2/3!+3/4!+4/5! = 119/120 = 0.991666666.....

至此,阶乘数的小数系统也构造完毕。并且,我们可以得出一个有趣的级数:

Σn/(n+1)! = 1 , 其中Σ是对n是从1到正无穷求和。 他的意义很明确,就是(0.123456......)_f = 1,正如十进制中的0.999999......=1一样。

大胆的,鉴于上述小数和整数权重表示的统一,我们可以定义

负数的阶乘


(-n)! = 1/(n+1)! , 其中n>=0。

这里我们发现,0!是符合这个公式的:0!=1/1!=1。则阶乘数系第i 位置的权重Pi =i ! , i 是任意整数。对于整阶乘数,实际上在最低位置右边还有一个“隐藏位置”,该位置的数值只能是0,权重是0!=1,因而无计数意义,我们可以把它想象成小数点,小数点右边就是小数系统,很完美的合在一起:

(n,n-1,...21.123456......)_f = (n+1)! , 对应十进制是9999.9999...=10000。

说明:这里负数的阶乘的定义是根据对称扩展而来,能够吻合0的阶乘且能够完善阶乘数系的表示,暂时没有发现它对其它组合公式有什么扩展贡献。

相关分词: 进制