百科问答小站 logo
百科问答小站 font logo



有没有一进制?一进制下1+1=几? 第1页

  

user avatar   NH4NO3 网友的相关建议: 
      

(2021.11.30 更新:补点英文术语吧。有兴趣的可以按照术语自己去搜更多信息 —— 用 bing.com 就能搜到不少 —— 至于为什么要用英文术语,是因为中文的“N进制”中的“进”这个字是额外引入的,计数系统并不一定要引入所谓“进位”的概念;具体可参见置顶评论。)


存在一进制,英文术语一般就称为 unary numeral system,但更准确的术语是 bijective base-1 numeral system。

其基本思想是:就算一进制只能有一个数字,但这个数字不一定要是 0,完全可以是1。

这样可以表达所有正整数:

       1, 11, 111, 1111, 11111, ...     

也就是需要表示几,就用几个符号“1”(可以理解为划一道、一根树枝、一个绳结)。外加用“没有”表示0。

—— 注意:这正是人类最原始的计数法。

这种一进制下,自然有 1 + 1 = 11.


扩展一下,“N进制”的定义并不是“逢N进一”这么个概念。写个十进制的109,并不需要掰着手指头数一百多次,然后决定:个位向十位进位10来次、十位向百位进位1次……

而是“以N为底”的一种表达;十进制(N=10)下的 109 代表的含义是:

但N进制所采用的具体的N个数字,完全可以有别的选择。

平常十进制用得十个数字是 0 ~ 9,那么 1 ~ 113 是这么数数:

         1,   2,   3, ...,   8,   9,  10,   11,  12,  13, ...,  18,  19,  20,   21,  22,  23, ...,                 ...,  88,  89,  90,  91,  92,  93, ...,  98,  99, 100, 101, 102, 103, ..., 108, 109, 110,  111, 112, 113, ...     

这种是普通的十进制,英文术语为 decimal numeral system。


然而完全可以不用 0,改用 1 ~ 10(值10用罗马数字符号X表示),那么可以这么数数:

         1,   2,   3, ...,   8,   9,   X,   11,  12,  13, ...,  18,  19,  1X,   21,  22,  23, ...,                 ...,  88,  89,  8X,  91,  92,  93, ...,  98,  99,  9X,  X1,  X2,  X3, ...,  X8,  X9,  XX,  111, 112, 113, ...     

在这里,X9 这么解读:

这种十进制的子类称为 bijective base-10 numeral system.

其相对普通十进制的最大差别是没有使用数字0。人类历史上0比其它数字发明得都晚,在此之前计数其实很多时候用的是这种方式。例如:第一天、第二天、……、第十天、满一旬后的第一天、满一旬后的第二天、……、满一旬后的第十天、满二旬后的第一天、满二旬后的第二天、…………、满十旬后的第十天、满百日后满一旬后的第一天、…………


同样也可以弃用 9,改用 -1 ~ 8(值-1用1上顶个负号相似的字母T表示),那么可以这么数数:

         1,   2,   3, ...,   8,  1T,  10,  11,  12,  13, ...,  18,  2T,  20,  21,  22,  23, ...,                ...,  88, 1TT, 1T0, 1T1, 1T2, 1T3, ..., 1T8, 10T, 100, 101, 102, 103, ..., 108, 11T, 110, 111, 112, 113, ...     

在这里,11T 这么解读:


更夸张一点,弃用 8, 9,改用 -2 ~ 7(值-2用Z表示、值-1用T)也不是不行:

         1,   2,   3, ...,  1Z,  1T,  10,  11,  12,  13, ...,  2Z,  2T,  20,  21,  22,  23, ...,                ..., 1TZ, 1TT, 1T0, 1T1, 1T2, 1T3, ..., 10Z, 10T, 100, 101, 102, 103, ..., 11Z, 11T, 110, 111, 112, 113, ...     


依此类推;甚至有的别的玩出花来的方案依然可行。


扩展补充几点:

  1. 用 -1(T), 0, 1 三个数表示的三进制叫平衡三进制(balanced ternary numeral system)。平衡三进制计算机(用负电位、零电位、高电位表示三个数)曾经和现在的二进制计算机(用低电位、高电位表示 0,1 两个数)竞争过,有其独特优势,不过最终没有成为主流罢了。
  2. Excel 的列号其实是 bijective base-26 numeral system,用 A-Z 代表 1-26:A, B, ..., Y, Z, AA, AB, ..., AY, AZ, BA, BB, ......, ZY, ZZ, AAA, AAB, ......。如果把 A-Z 理解为代表 0-25 的普通二十六进制是说不通为什么 Z 后面是 AA 的。用 =column() 函数可以把列号转换为普通十进制结果。
  3. 其实还存在很多看似非常奇怪但依然自洽的计数系统:负二进制(使用 0、1 两个数码)、根号二进制(使用 0、1 两个数码)、π进制(π为圆周率,使用0, 1, 2, 3四个数码)、2i进制(i为虚数单位,使用 0, 1, 2, 3 四个数码)……理解它们的关键是彻底抛弃掉“逢N进一”这个念头。
  4. 这些看起来略奇怪的计数方式在很多自然语言中都有所体现。评论区有网友提供了一个世界各国语言计数系统复杂度排序(主观)的网站,可以在里面找到不少语言将9表示为“离十差一”、28表示为“离三个十差二”之类的数词构词法。网站链接:Number Systems of the World
    (中文普通话在复杂度倒数第五位,比后面的倒数第四的日语、倒数第三的中文粤语稍微复杂一点点是因为有变调情况,例如“一百”中的“一”改念“yì”;至于倒数第二的人造语言世界语、倒数第一的汤加语那个太神了,比不了。)



  

相关话题

  如何看待软件工程师觉得学习算法没用? 
  是否存在一个4的整数幂以123为首位? 
  在C#下有什么好办法可以替代if-else和switch-case? 
  0到1之间所有有理数之和 ,和1到2之间的有理数之和,哪个大? 
  现在还能通过自学成为数学家吗? 
  工程上存在那么多不确定情况,为什么计算机不能利用它们产生真随机数,而只能根据逻辑产生伪随机数? 
  拓扑学能解决哪些分析学无法解决的问题? 
  如何反驳此人证明0.9循环不为1? 
  这几个不等式如何证明? 
  C#为什么非要把函数叫方法? 

前一个讨论
在这种不同操作下,对于计算机体系的不同是否会造成时间差异?
下一个讨论
java设计request body为什么设计成只允许读取一次???





© 2024-05-15 - tinynew.org. All Rights Reserved.
© 2024-05-15 - tinynew.org. 保留所有权利