研究!rsc公司

关于编程的想法和链接,通过

RSS(RSS)

双五元和其他碱
发布于2008年4月11日星期五。

Doug McIlroy的演讲贝尔实验室的计算历史提到了乔治·史提比兹基于继电器十进制计算器将数字存储在他所谓的双五进制中:“算术是用双五进制完成的,十进制整数的五分之二表示法,如果没有五分之两的继电器激活,它就会停止。”这允许一系列计算作业在周末无人值守的情况下运行:如果计算机检测到错误(不是某个数字中正好有两个继电器处于活动状态),则它将停止当前作业并重新开始。

麦克罗伊将数字系统描述为5位不同于维基百科条目中的任何表述双五进制编码十进制双五元的,其中描述了基本上是一元的系统:5位,从0到4计数(一次只打开1位)和两个最高位:01=0,10=5。通过搜索Stibitz和bi-quinary,你可以在网上找到其他历史摘要,这些似乎支持维基百科。在这个版本中,双五进制是2的1加上5的1,而不是5的2。在7位版本中,位位置值为5、0、4、3、2、1和0,这不是很有趣。考虑五取二系统要有趣得多。

如McIlroy所述,五取二系统中的有效代码为00011、00101、00110、01001、01010、01100、10001、10010、10100、11000。如果将这些值指定为0到9,则可以建立一个线性方程组并求解它们,以找到五个位位置b4、b3、b2、b1和b0中的每个位的值。00011=0意味着b1+b0=0。00110-00101=2-1=1意味着b1-b0=1。这两个等式意味着b1=½和b0=-½。考虑到您可以很容易地选择其他位:从右到左,“位置”是-½、½、1½、3½和6½。这适用于0到8,但遗憾的是,在9:11000=6½+3½=10时失败。其他代码分配也没有解决方案(我编写了一个小程序来尝试所有这些。)

我想这就是为什么2之1加5之1形式比5之2形式更受欢迎的原因:如果每个位都可以被赋值,那么设计算术电路可能会更容易。这太糟糕了,因为如果能让它发挥作用,5投2中就会有数学上的优雅。

如果你四处寻找,你可以找到其他深奥的数字表示法:否定的以-2为基数(负二),因此位置值为1、-2、4、-8,依此类推。因此,5是101,而3是111=1-2+4。否定似乎是由维托里奥·格伦沃尔德于1885年首次发明的。20世纪50年代,它被用于一些实验计算机,但没有流行起来。比负数更奇怪的是四元虚数,1955年,一位名叫唐纳德·克努特的高中生发明了这一发明。使用基数2的(其中是-1)的虚平方根。(克努特也对否定历史负责。)

奇怪的还是对称三进制(三元,但数字为-1、0和1)泡泡糖,但不会讨论有趣的计数系统或高中数学书呆子完整无需提及计数在你的手指上用二进制.

(评论最初通过Blogger发布。)

  • 抢劫 (2008年4月11日上午10:48)因子是另一个有趣的基础(缺少维基百科文章)。它对于枚举排列特别有用。我找不到比这更好的参考资料了,很不幸

  • 克里斯·莱斯尼夫斯基-拉亚斯 (2008年4月11日下午7:00)平衡三值对于并行大数乘法器来说非常有用,因为您不需要将进位任意传播到远处。我在我的RSA-on-a-GPU实现中使用了平衡N-ary。

  • 德里克·佩舍尔 (2010年7月27日上午8:03)中继电话交换机使用五取二的代码,与您描述的代码非常相似。为位指定值0、1、2、4和7。然后将代码视为存储数字1到10,而不是0到9。(为什么?因为开关正在读取旋转电话的拨号脉冲。)注意每个位的值是如何比您的值多½。

    信封上的邮政编码的一种条形码形式——条形底部排列的一种使用相同的编码。条的顶部和底部从中间突出的版本使用了更稀疏的编码和更多的错误检查。

    如果你在西雅图,想看看贝尔实验室继电器开关的工作情况,可以去参观老式电话设备博物馆。