智电网讯:10%+10%到底等于多少?还是算法出了问题
9月3日,手机计算器全线阵亡”登上热搜榜,原来是苹果、华为、小米、OPPO等各厂商手机计算器都出现了神奇的bug,手机计算机计算“10%+10%”时,得出的结果是0.11,而不是正确答案0.2。业内人士随后展开科普,表示这看起来是个Bug,但最终结果其实是计算器处理运算符号的逻辑所导致。
用iPhone X、iPhone X max、华为mate 20 pro等机型测试都出现类似情况,比如“30%+20%”得出结果为0.36,“50%+50%”得出结果分别为0.75。
这是普通计算器和科学计算器的区别,人计算时,会优先考虑加减乘法的优先级,先做除法再做加法,结果就是(10%)+(10%)=0.2。如果是非科学计算器的计算逻辑则是认为连续百分比计算,即10%+10%按照10%+(10% x 10%)逻辑计算得出0.11的结果。
简单来说,部分手机计算器会默认把A+10%理解成A+Ax10%,而非A+0.1,对于截然不同的结果,网友们也是议论纷纷。一时间,网友们拿起自己的手机开始算了起来,不过结果基本都是0.11,当然也有个别手机例外。
在网友的测试中,华为、苹果、OPPO、小米多默认采用A+Ax10%的逻辑给出答案,其中小米在科学计算器下,有的用户显示结果是0.2,有的依然显示为0.11。而魅族、锤子、努比亚等少数机型未“躺枪”
那么几大手机品牌高管是如何看待这个问题的呢?
荣耀业务部总裁赵明就此发表个人观点,他解释到:“实际上这有一个背景,就是算小费等特殊场景,很多国家餐厅吃饭给10-20%的小费,这时100+10%相当于100+100*10%,相当方便的一种人性化设计”。
赵明也在其微博上积极征求网友意见:“那么到中国要不要改过来呢?”。
魅族华海良对此的解释是,“这个话题引发了不少讨论,其实本质上并不是对或错的问题,我们只是考虑的更多,增加了人性化的算法判断。10%+10%=0.11这个是国外的使用逻辑,而国内的算数逻辑是10%+10%=0.2,所以我们针对不同地区的固件做了不同的算法判断。”
小米产品总监、MIUI体验总负责人小凡也在微博进行了回应。@MIUI小凡 指出,“10%+10%”是目前全球标准的计算逻辑,最早的电子计算器并没有%,是后来加入的。作为后续改进,它一定程度上解决了计算场景中的常用痛点,特别是在西方人计算折扣、小费、利息等场景时,这样的计算逻辑会变得无比实用。
事情进展这么久,让基本上大多手机都不能正确运算的数学问题,终于有一些答案了。
其实并不是手机计算器算法设计师的数学课是体育老师教的,而是因为国内和国外的使用习惯不同导致的。
国内和国外还是有一些代沟在里边,就好比“10%+10”%这行算式列在这里,大家对它的理解有几个偏差,所以导致算出来的结果不同。但是其实大多数人并不会这么计算,而死揪这个算式的本身,也是没有太多意义的。百分比更多的是在数据中体现,而不是直接加减运算计算出来。
好了,本期科技来电 到此结束,我们下期见。
新鲜资讯,热辣点评,尽在科技来电!
领取专属 10元无门槛券
私享最新 技术干货