1
WildCat 2014-05-25 15:09:35 +08:00 via iPhone
三进制如何用电路表达?
|
2
Xs0ul 2014-05-25 15:15:32 +08:00
对于现在的计算机和程序,“不知道”这个应该很难用到吧?用1/3的可能结果来专门表示一个几乎用不到的结果,太浪费了。
要用三进制表示“不知道”来开发模糊运算、人工智能,完全可以用两个二进制位来做,改用三进制并不会有质变。 另外现在二进制计算机的技术,基本上没法用在三进制计算机上,完全得从头做起。 |
3
hooluupog 2014-05-25 15:30:33 +08:00
我感觉这个问题非常像:为什么早就有lisp理论上这么先进的东西存在了,但在现实世界中流行起来的却是"丑陋"的类c系列语言。Ternary computer现在还在不断研究,比如ibm一直在研究,和量子计算机也产生了关联,但这些还都在理论层面paper上,就像现在各种FP语言又热了起来,但实际生产环境中还是类c语言大行其道。
|
4
zjgood 2014-05-25 15:31:33 +08:00 via Android
二进制符合阴阳理论。嗯,就是这样~
|
5
Mutoo 2014-05-25 15:36:40 +08:00
根据我了解过的资料,我大概只记得下面这两点
1)三进制计算机是美苏冷战的产物 2)三进制电子管不稳定 |
6
akfish 2014-05-25 15:39:49 +08:00 8
首先,把“接近人类的思维方式”作为评价计算机好坏的标准,是一种自大不切实际的标准。
实际上,人类科学能走到今天这一步,很大程度上依赖于各种”反人类、反直觉“的理论。 三进制为什么没能流行的原因,很大程度上是由底层硬件原理决定的。 数字电路只能有效的表达开/关两种状态,所以原生二进制。 DNA计算机是四进制,因为有ATCG四种碱基。 量子计算机视最终能获得的量子叠加态数量,可能是更高进制的。 如果计算机真是三进制的,用来老老实实编码,必然比增加一个“不知道”的位更经济、更高效。 32位二进制bit能编码最大2^32-1的无符号数,而32位三进制bit能编码到3^32-1。 假如CPU主频一致,同是32位长寄存器,3进制计算机的运算能力更强。 真正要模糊计算的话,现在的做法是用fuzzy logic,给输出量同时赋予一个概率,这比起多一个非黑即白的“不知道”位,更加“接近人类思维方式”。 |
7
palmers 2014-05-25 15:41:43 +08:00 via iPhone
在计算机世界里 知道和不知道的中间值 要么知道 只是多少 真 要么不知道 得不到值 假 不会存在 你所说的模糊情况 人的思维的圆滑 不能直接运用在计算机上 为什么就经常有人说 程序 代码是不会骗人的 它不能也不会对我们说不知道 对和错 非常的鲜明 所以从这个角度来说 三进制取代二进制 没有讨论的必要性 他可以以 类似 八进制 十六进制形式存在
|
8
wdlth 2014-05-25 15:47:00 +08:00
在电子上三进制不好进行表达,不过量子可以有多种状态,估计量子计算机可能使用三进制吧。
|
9
akfish 2014-05-25 15:57:29 +08:00 5
查了些英文的文档,百度百科的词条很多说法不靠谱。
百度百科词条明显把三值逻辑运算和三进制编码给搞混了,三进制计算机底层编码采用的是平衡三进制(http://en.wikipedia.org/wiki/Balanced_ternary),优点是表达正负数同样容易,不存在有无符号的蛋疼。 三进制计算机目前复活的可能性是光计算机(http://www.iop.org/EJ/abstract/1402-4896/2005/T118/025/)或者量子计算机(http://nextbigfuture.com/2009/08/qudits-multilevel-versions-of-qubits.html),可以很容易原生表示三进制。光计算机可以用无光表示0,两种正交极化方向的光表示+1或-1;量子计算机量子叠加态多到用不完,自然不用多说。 这里有个三进制计算机的模拟器: http://tunguska.sourceforge.net/about.html 总之,要学到靠谱的知识,远离百度百科。 |
11
andyhu 2014-05-25 16:18:16 +08:00
现代科技里半导体电子电路的基础就是通和断,这就是二进制的,电路里没法做出不知道通断。再比如说以前最老式的打孔计算机,一个纸带的同一位置上只会是有孔或者无孔,没有说不知道有没有孔这个概念
世间万物也都有阴阳的属性,看似中性只不过是阴阳属性均等罢了。二是变化的最基本单元,所谓一生二 二生三 三生万物。 |
13
akfish 2014-05-25 16:26:59 +08:00
三进制在电子计算机中的实现方式是:
正电压 +1 零电压 0 负电压 -1 等于是有两种不同的“开”状态。这会大幅度的增加系统的复杂度。 所以也就只有早期晶体管数少的时候能造出来,随着规模的增加,按当时的科技水平,可能很快就会遇到瓶颈。 如果当初整个行业真点了三进制的科技树,可能计算机运算能力的提升速度会严重变慢,摩尔定律不会出现,人类整体科技发展速度都会放缓。 这个话题还是比较有意思的,至少成功的就要混到晚饭时间了。 |
14
caiych 2014-05-25 16:28:16 +08:00
@akfish 赞『首先,把“接近人类的思维方式”作为评价计算机好坏的标准,是一种自大不切实际的标准。』
我们AI课老师当时说过一句话 不要一直说把自己当个机器觉得很鄙视机器一样,实际你要真能把自己当一个机器是把你的层次提高了 |
15
lynnlee OP @WildCat 百科上的
随着技术的进步,真空管和晶体管等传统的计算机元器件逐渐被淘汰,取而代之的是速度更快、可靠性更好的铁氧体磁芯和半导体二极管。这些电子元器件组成了一个很好的可控电流变压器,这为三进制逻辑电路的实现提供了可能,因为电压存在着三种状态:正电压(“1”)、零电压(“0”)和负电压(“-1”)。三进制逻辑电路非但比二进制逻辑电路速度更快、可靠性更高,而且需要的设备和电能也更少。这些原因促成了三进制计算机“Сетунь”的诞生。 |
17
robertlyc 2014-05-25 16:36:24 +08:00 1
百度一下 你就上当
|
18
cassyfar 2014-05-25 16:52:59 +08:00 1
@lynnlee 二进制有一个状态叫dont care,用x表示,就是说当前取值1或0对结果都没有影响,比如一个OR gate,如果一个input是1,那么另外一个input就是x了。感觉和你所说的不知道比较像。但是实在无法联想到和机器学习还有人工智能有什么直接的联系。
百科上那个随着科技的进步XXXXX,然后出现了正负和0电压。我感觉BJT和mosfet都没有这种状态。不知道前瞻到什么科技时代去了...... 其实二进制是目前最好的传统电路实现因为现在vlsi的mosfet特性就是这样的,可以去看看一个mosfet级的nor gate怎么实现的就能了解为什么二进制很不错了。 |
19
jakwings 2014-05-25 16:56:53 +08:00 1
还是认为 1 楼一早就提到了瓶颈。电压通常不是说正负平的,而是高低与否。能否准确且低耗地实现三种状态才是第一重要的。
|
20
jakwings 2014-05-25 17:15:20 +08:00
|
21
leosama 2014-05-25 17:50:46 +08:00
我个人觉得光纤可能没法三进?
|
22
nicai000 2014-05-25 18:06:39 +08:00
相信这种文摘的到底懂计算机原理么?
|
23
shoumu 2014-05-25 19:09:52 +08:00
晶体管上的电压不稳定吧,所以可能会产生很多错误。就如上面说的0电压表示0,这个是很难控制的
|
24
jiang42 2014-05-25 19:16:09 +08:00
十进制流行的原因是我们有十根手指
二进制流行的原因是电压高低表示自然、简单 |
25
Actrace 2014-05-25 21:21:51 +08:00
简单既智能。
|
26
yxz00 2014-05-25 21:29:26 +08:00
lz你看的是什么公开课?看看是哪个丢人现眼的学校老师。瞎掰人工智能也先读两本计算机书再来好吧。
|
27
yxz00 2014-05-25 21:30:05 +08:00
简直误人子弟
|
28
inee 2014-05-25 21:32:45 +08:00
编程语言和硬件的转化执行效率
|
29
rannnn 2014-05-25 22:00:17 +08:00
我怎么记得上学插板的时候的时候电压根本不稳,根本不可能有0电压嘛。都是给个reference值然后超过多少表示1,低于多少表示0 =。=
|
30
kawaiiushio 2014-05-25 22:31:29 +08:00
@jakwings 不明觉厉
|
32
pfitseng 2014-05-25 22:44:44 +08:00 via Android
曼彻斯特编码
|
33
zhouzm 2014-05-25 22:54:13 +08:00
『相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”』
只有文科生才会这么想当然的联想吧,什么时候二进制里的0和1表达的意思是答案的“是”和“否”了?还冒出个“不知道”,要不再增加个“我不知道”,“你小子也不知道”,更接近大脑思维。 计算机就是你给个算式(程序),它按你的要求算出个结果,这个结果就是一个数字,然后科学家和工程师们实践后,至少到目前为止二进制作为中间运算是最高效率的(包括制造工艺上)。 至于你想用什么进制去表达这个数字,那随便你啦。 |
34
sheldom 2014-05-25 22:57:08 +08:00
@akfish 的答案就已经很全面啦
三进制计算机关键是材料问题吧,在计算上三进制是最优定义。 而且你见过那种普通材料具有三个状态的,苏联的三进制严格来说应该算伪三进制。 // e进制是信息表示的最优解先考虑最优的定义 假定总共有n位,每位m个状态,m*n=v 在v一定时,使得m^n最大 也就是k(n)=(v/n)^n最大 考虑一般情况下 ln(k(n))=(ln(v)-ln(n))*n=ln(v)*n - ln(n)*n 对n求导 ln(v) - (n*1/n + ln(n)) = ln(v) - 1 - ln(n) 解得ln(n)=ln(v)-1是k(n)唯一的极值点 易知是k(n)最大值点 所以n=v/e m=e=2.71828182846时,k(n)最大 显然3进制比二进制更接近e值 // 参考: http://www.zhihu.com/question/20194670 |
35
lalalakakaka 2014-05-26 08:17:25 +08:00
|
36
jakwings 2014-05-26 08:43:23 +08:00
@kawaiiushio 看你楼上说的。要电压高于或低于指定阈值时才算 1 或 0 ,因为电压不稳。
同样地,由于电压不稳,假如要用正电压、负电压、零电压来表示三种状态,除了要设定更多的阈值外,还要看有没有对应的低耗的状态监测工具。假如为了监测更多的状态而大大增大了电路的体积或电路材料的开销,那肯定是得不偿失的。量子电脑有先天优势,可以用量子来表示三种状态,可是量子电脑的造价,还不清楚,电脑能变得多小也不太清楚…… |
37
jakwings 2014-05-26 08:44:47 +08:00
@kawaiiushio 不知道 @ 的哪一楼真辛苦,我也暂搞不懂那个 Google 模拟器。
|
38
jakwings 2014-05-26 08:48:12 +08:00
@lalalakakaka 因为那是指具体有多少个电路单位。在同样的单位下,三进制理论上是最省材料的,可是以各种材料的体积和材料一样为基准的。
|
40
jakwings 2014-05-26 08:56:45 +08:00
@lalalakakaka 请当我没说过,没看清楚那是总状态数。实际上应该考虑位的个数,还是状态的个数,应该要再看看具体运算时要怎么提高效率,所以我暂还是不太认同 @sheldom 的看法。
|
41
rannnn 2014-05-26 09:48:16 +08:00
@Actrace
虽然我只选修了一学期的EE的学渣。。。 随便找了下Data Sheet,举例来说小霸王上的6502这种古老的CPU也是有高低电压的阀值定义的(Page 3)并不是简单的通断。 http://www.mdawson.net/vic20chrome/cpu/mos_6500_mpu_preliminary_may_1976.pdf |
44
jakwings 2014-05-26 10:22:43 +08:00
@lalalakakaka 发现我越想越混乱了,m^n 表示信息种类的个数,m*n 我想应该就是表示电路材料的数量,三进制能够用同样多的标准材料来容纳最多的信息。@sheldom 这样应该没理解错了?
|
45
akfish 2014-05-26 10:33:51 +08:00
@rannnn 这不光是可行与否的问题,理论上还可以把GND到Vcc之间分10个level,直接撸出十进制。
但工程上还有更多的考虑,复杂度、可靠性、成本、可扩展性。 虽然毛子撸出来那个三进制计算机号称可靠性更高,那也只是因为系统简单而已,而且也只是和当年的二进制电路比。 现在i7 CPU晶体管的规模是14亿+,如果三进制,每个逻辑单元要有两条供电线,不管是布线还是EMC设计,比起二进制单供电线实现起来不是蛋疼了一点半点。 我个人严重怀疑如果当年选择了三进制,到今天CPU能造出14亿+晶体管的规模。 |
46
akfish 2014-05-26 10:46:44 +08:00
@rannnn 好像@错人了
然后你举的那个例子说明的不是数字电路“不是简单的通断”,而是在工程上如何实现了“简单的通断”。 理想的数字信号是能瞬时从0跳转到1或者反之,时序图的上升/下降边缘是与时间轴垂直的,但实际中做不到,所以才需要一个触发阈值。 最后达到的效果,依然是简单的通断。 |
47
akfish 2014-05-26 10:49:32 +08:00
@rannnn 见http://en.wikipedia.org/wiki/Signal_edge
|
48
eickegao 2014-05-26 10:55:01 +08:00
感觉三进制和二进制没啥区别。只要还是在进制上面做文章,整个计算机的体系就没啥本质的区别。
|
50
xdeng 2014-05-26 13:20:06 +08:00 via iPhone
进制越多 误差越大
|
51
kurtis 2014-05-26 14:34:51 +08:00
以下为 三进制计算Demo
运行程序:print 102+201*112*200*2 运行结果:0 (不知道) |
52
seiwev 2014-05-26 16:29:23 +08:00
当时是二进制更便宜,容易实现。
二进制也更清晰易懂。 |
53
xgod 2014-05-26 17:39:26 +08:00
量子bit还是2bit呢,还需要对应的逻辑理论来支撑,都不知道是不是我们有生之年能看到的产物。不是不用更多单位描述,而是局限于硬件,为了极致的利用硬件资源,才有了现在的计算机体系。比如内存管理等,如果底层不用线性存储,而是以树结构、网结构或图结构,现在算法理论将不会偏向于线性结构滴。要实现KV存储,只需要使用Trie树就可以了,多单纯,哈哈。
|