佳能F-789SGA计算器好用吗?
总的来说,就是山寨中的战斗机
科学计算器首先看系统,其次看硬件。
先看软件
f-789sga用的是一种公版的仿卡西欧系统,和它同系统的机型还有aurora(震旦) ax595、得力d991es plus,以及大名鼎鼎的越南寨厂——vinacal 570es plus系列。
在精度上,f-789sga和vinacal 570es plus使用的是比较高精度的运算库,d991es plus用到是和大多数寨机一样的16位精度运算库。
那么这个系统到底好不好呢?
目前寨机领域有三大主流方案:8.999999998精度方案、9.000000001精度方案、佳能/vinacal方案(精度从9.000000004到9不固定,跟核心算法库的精度有关)。
首先是不影响计算的bug。
佳能/vinacal系系统和正版机的系统,如卡西欧fx-991es plus、夏普el-w991cn、德州仪器ti-36x pro mutiview相比,其实在数量和影响上其实是不相上下。而相较于其他盗版机的系统,这套系统可以说是遥遥领先,是寨机系统里的第一梯队,是最稳定且流畅的那一档。隔壁的9.00000001精度方案还在和分数上的根号博弈、8.999999998精度方案还在缓慢的计算光标位置呢。
那么,影响计算的bug呢?
这个系统的计算bug相较于其他的寨机系统,是非常少的,而且相较于其他山寨机,已经研究的比较清楚了,可以去主动避免。

这个bug的产生原因似乎是因为数据清除不规范,因此偶尔会出现一些计算错误。
此外,玩佳能f-789sga的用户基本都知道,这台计算器的初始化功能并不能做到真正的初始化,必须得用吧U自研的x=Σ(x,1,1e9)方法借助异常触发内存完整性检查来做到初始化。


这个我测试的结果是math error,因为没给出答案,所以不计入“算错”范畴

第三条:CALC的问题主要集中在“x=……”这样的CALC赋值中,但是这种算式本身就很少用到。我在学生时代完全没用过,全是用……→x来赋值的
第四条:又是经典的数据清除不规范bug,之前讲过不再讲一次。
但是,比起同样反应速度较快的9.000000001精度方案,佳能/vinacla方案的准确性可以说是遥遥领先,目前您能在网上搜到的大多数盗版机计算错误,尤其是和复数相关的错误,其实都是早期9.000000001精度方案的bug导致的。现在这个方案已经修复了大多数和复数有关的bug,不过其他bug还是有不少。目前就连我都很难说驾驭的了9.000000001精度方案的计算错误bug。
在这方面,目前做的最好的系统是8.999999998精度方案,但是这个方案……输入算式都慢半拍,速度慢的你想要砸计算器。当然他也不是一开始就好的,早期这个方案也出过很多稳定性问题,但是现在这些机器基本都停产了。
那么,到这里你可能会好奇为什么这些寨机影响计算的bug会比正版多。其实这和它的硬件选型和开发环境有关系这个到时候再说。
不过即便是考虑bug,佳能/vinacal系方案在寨机系统中还是第一梯队的,而且有一些其他寨机方案没有的小功能
1、这个方案支持3~4步的按键步骤缓存,在输入的时候,如果算式太复杂,计算器反应不过来,它会先记住你的操作步骤(最多大概4步左右),然后一步一步延迟输入进去。用过佳能f-789sga和得力d991es plus的人应该会有印象。
2、堆栈的级数很多,具体多少我没数过,但是超过了卡西欧的11级数字堆栈/24级符号堆栈,虽然我并不认同把ram用在这种地方。
3、f-789sga支持9个数字变量,虽然我认为没什么用
4、f-789sga的apps键设计也非常的不错,其他es山寨机没有人做过这个。
值得注意的是,和fx-995es等旗舰机型相比,F-789sga和F-792SGA的功能其实并不惊艳
佳能/vinacal系方案其原始机型对(shan)标(zhai)的是卡西欧fx-570vn,而不是fx-991es,这使得这套系统的基础功能就是比一般的991es更多的。这也是为什么佳能f-789sga的功能会比fx-991es更多。其实如果你用过卡西欧在日本发布的旗舰es机型fx-995es的话,f-789sga的功能其实谈不上多么震撼,甚至其升级版F-792SGA还是比卡西欧fx-995es 和夏普的旗舰机型少了个“分布”模式。
那么为什么大家会觉得这台机器功能很多很惊艳呢?因为卡西欧太懒了,不愿意下放es plus时期就已经研发的那些功能,如求积、分布模式、int、intg、gcd、lcm、rndfix、÷R、循环小数等给国际版机型用(卡西欧在国内发布的机型,除了fx-999cncw ii这一系列深度定制,其他的功能基本照搬国际版机型,包括fx-991cnx也是。但是在991cnx发布后,卡西欧发布了jp900,然后不久又修改了国际版机型的功能规划,增添大量功能,使得991cnx成小丑了,jp900其实也因此变得有点小丑,和fx-991cnx一起唯二不支持求解含微分方程的旗舰型号),导致大家吃不上这些新功能,而佳能把它搬上来了,那自然大家就会觉得它功能多。
高赞的“实际增加的功能并没有什么实用价值”我非常反对,至少求积和有余数除法功能我就觉得很有用,以及4x4矩阵,这个是相当大的提升好吧。CONV和CONST菜单更是比fx-991es不知道好到哪里去了。事实上这些功能jp900上都有,如果它们真的一点用都没有,那么卡西欧也不会做。
再看硬件
三大方案中,8.999999998精度方案硬件不明,9.000000001精度方案和佳能/vinacal系方案使用的都是ELAN eps6800的定制或衍生版本。而在正版机中,卡西欧fx-991es/cnx/cw和德州仪器ti-30/36x pro系列函数计算器使用的是原OKI的 nx/u8和u16单片机,夏普el-w991cn也是采用ELAN eps6800的衍生方案。
eps6800这个单片机其实硬件性能不错还省电,ram和rom空间也非常充足。因此,在es时代,盗版机在算table的时候体验其实是比正版机更好的。我在学生时代就留着盗版82es专门用来算table,比正版快不少。得力d991es可以提供远大于卡西欧fx991es的历史记录空间,不过在我看来把这些ram用在存历史记录上太浪费了,佳能对这些空间的利用远比得力更合理,他把它们用来储存矩阵,使得f-786sga支持4个4x4的矩阵,超过卡西欧原版和得力的3个3x3矩阵。
然而,单片机本身还行不代表开发环境还行。
eps6800一开始是不支持用c语言开发的,只能用汇编。后续才加上了对c的支持。而我们耳熟能详的寨机方案——9.000000001精度方案和佳能/vinacal系方案,它们的开发时间都早于ELAN为eps6800加上c语言支持的时间。这种糟糕的开发环境,对于程序员的水平要求很高。更雪上加霜的是,eps6800是一种定制的RISC芯片,运行定制的指令集,而不是8051、riscv、mips、arm这种比较流行的指令集。所以你大概率请来程序员后还得专门去研究一番才能干活。
而9.000000001精度方案,本身就是一个没什么想法的纯山寨用产品,背后的厂子会花高价请好的汇编程序员吗?会好好给他们做eps6800的专项培训吗?我觉得不太可能。这就是为什么9.000000001精度方案的bug一大堆,贡献了大量的计算错误,几乎成为最不稳定的寨机系统。这似乎也能解释为什么即便是夏普也要守着过时的底层算法库和13位数精度万年不变。
在此之下,佳能/vinacal系方案能达到这个稳定性,可以看出开发人员还是费了心思的
而OKI的 nx/u8和u16比较早就支持c语言开发了,所以卡西欧可以更好的避免计算bug的出现