为什么手机计算器上50%+50%=0.75?

论坛 期权论坛 股票     
期权匿名问答   2023-2-15 08:45   14133   5
为什么手机计算器上50%+50%=0.75?
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
期权匿名回答  16级独孤 | 2023-2-15 08:46:16 发帖IP地址来自 北京西城
这是道陈年老题了,又被人翻出来了。
与手机计算器没那么大关系,随便找个电子计算器结果依然是0.75的,手机计算器只是继承了计算器行业原有标准,避免发生混乱而已。
本回答提到的计算器基于最常见的,也是多数手机内置的函数式电子计算器,而非法则计算器和顺序计算器。

计算器在有限的算能和一定按键数量的限制下,为了实现更多的数理运算和统计运算,赋予了每一个按钮可能的多种运算功能,以及不同按键操作组合情况的不同运算功能。
百分号“%”按钮与小数点键/数字键都不同,它不是数值输入键,而是跟加减乘除/平方根/M+等一样是函数键,它有着计算器规定好的使用规则,就包含和其他函数键配合使用的规则,并且这些规则在计算器业内已经形成标准。
首先说本题运算中用到的“+”按键。它的功能跟你在纸上做题里的加号是不完全相同的,你如果在卷子上写2+=4估计肯定会被数学老师爆打,但你在标准的计算器里依次键入“C”、“2”、“+”、“=”,得到的结果就是4,而且你可以继续不断的按“=”键下去,结果就是6、8、10......计算器就是这么用的,你数学老师也不会因此来打你,因为这就是计算器自身的正确使用方式,甚至没人教你这么用,你发现了这个技巧时,你一定会稍作思考,去想想这里面计算器有的逻辑,然后也不会觉得这有什么特别奇怪的。
由这个例子可以看出加减法函数键按钮本身就有一个隐含的使用规则,即加减号有默认记录加减号前面的数值的功能
如果你手上的计算器本题的计算结果为0.75的话,那么在第一次键入“50%”后屏幕应该显示0.5,第二次键入“50%”后屏幕应该显示的是0.25,再基于刚刚已知的“+”号的那个使用规则你能不能想到点什么?是不是这里又发现了计算器的一个隐含使用规则?
前面的50%,我们可以看出计算器%的第一个功能或者说基本功能,即把百分数转换成小数,50%显示成0.5,但是这个功能实际存在的意义实际是不大,首先转换难度低,而且键入并没有优势,比如“75.5%”键入五个键,直接用小数点键入“.755”四个键,显示出来的结果都是0.755,所以这个功能并不是按键存在的核心功能。而第二个功能就是一个隐性高级功能了,百分号%键可以对刚刚提到的加减号默认记录的数值直接计算百分比,0.5的50%即0.25,于是相加得出结果0.75。

那么问题又来了,就是计算器上的“+”、“-”和“%”的函数组合功能的使用场景到底是什么?
当然很多答案提到了价格折扣,这确实是其中一种最常用最基础的,而且确实是老外用的多点,咱们普遍口算而不怎么用的一块。
那我们再举个更复杂但是更实际的例子:
一种货原价100块,第一天涨10%,第二天比前一天跌了15%,第三天比前一天涨了20%,第四天比前一天跌了25%,第五天比前一天涨了30%....问第四天的价格是多少?问第七天的价格?
如果手写算式应该还是一个挺长挺复杂的算式,这里就省略不写了,感兴趣的读者可以自己写一写。而要是“%”键没有第二个函数组合功能的话,键入的过程会异常复杂,可能还需要不断纸上记录辅助,避免少出失误。但就因为有了加减组合百分比函数功能,只需要“C”后键入按以下按键:“100+10%-15%+20%-25%=”,共按键22下,直接得出结果:84.15。
当然我相信还是会有口心算能力出众的朋友可以口算出来,不过我相信即使算出来大概率没有计算器快,而且后面的第七天我觉得口算真的就有点过于难了,甚至给你纸笔算起来可能也快不过计算器。
所以百分号“%”按键的场景就是用于简化百分比相关运算过程的。标准的电子计算器上%按键存在是有意义的,它是为了方便运算而存在,并不是算式里单纯的%一个符号而已,而是%函数功能键,这个函数在计算器上有着小数点这种基本数值输入按钮或者非函数按钮没有办法替代的功能。
我们回过头再看这道问题,50%+50%=这样的两个前后加数都相等、结果原本呼之欲出的算式,直接写在纸面上,没有计算器中间显示过程而直接写了个结果,然后还告诉你说是手机计算器里算出来的,就非常有煽动性了,因为直觉直接告诉你:这个结果错了,计算器这都能算错。而如果我们是在随便玩计算器时点出了一个80+10%=88的结果,估计有些人看到中间的显示过程,还是会去思考计算器这是什么逻辑,可能会比按出+=函数组合的操作更惊喜一些,觉得计算器原来还有这么个功能,挺有意思的。甚至于由于这一类标题过于有煽动性,有些品牌的手机居然拿这个做噱头,来了一拨叫“针对国人习惯的细节优化”来做宣传。
最后,如果您的手机计算器的结果是0.75,那么恭喜你,这大概率是一个好用的函数式计算器。当然如果结果是1,那也没关系,可能是非函数计算器,就算恰巧也是函数计算器,只是做过所谓的“对国人使用习惯的细节优化”,实际使用中影响也很小,毕竟这道问题能问出来,并且引发广泛的讨论,让很多人认为0.75的计算器算错了,足以证明多数人生活里并不怎么用%这个按钮。
<a href="http://www.zhihu.com/question/344131383/answer/815665774" data-draft-node="block" data-draft-type="link-card" data-image="http://pic3.zhimg.com/v2-e44b28be8d09247f79b6a2f2887ba896_ipico.jpg" data-image-width="800" data-image-height="800" class="internal">为什么魅族手机计算器在计算 10%+10% 的时候没有阵亡?本题回答基本都来自于很久之前的这个答案,这道题里罗列了很多计算器老教材的截图,可以一窥电子计算器这种老工具原本应该有的强大。
3#
期权匿名回答  16级独孤 | 2023-2-15 08:47:15 发帖IP地址来自 北京
这是因为,题主所使用的这个计算器应用,为了模拟实际生活中简单计算器的行为,把%这个按钮做成了一个一元操作,直接将前一个操作数与当前显示的操作数进行取百分比运算,将其结果覆盖当前显示的操作数,前一个操作数保留,也就是说,
先输入x,再输入一个二元操作符如 + 之类。
再输入y,
按%之后,将y赋值为 ,不改变之前已经输入的二元操作符。
此时再按下=键的话,如果二元操作符输入的是+,则最终的结果z就是

其它答案也说了,在国外,经常会有需要输入商品价格要加上百分之多少税额的操作,这样实现的话,输入就方便很多。
在古老的Windows XP/2003计算器源代码的注释中,明确说明了这种操作方式,是为了模拟“大部分计算器的行为”。不过Windows XP/2003计算器的“%”功能和安卓机的计算器有一点不一样,不会检查当前显示的是否是第一个操作数,如果没有上一个操作数,之前输入的x会被赋0而不是赋1,因此在刚打开或者按下“C”“CE”后按下“50”“%”不会变成0.5而是0。我试了一下,确实AOSP计算器对二元操作符做这种处理的条件也比Windows XP计算器要严格一些。

4#
期权匿名回答  16级独孤 | 2023-2-15 08:47:53 发帖IP地址来自 北京
国内的价钱一般是明码标价,打折也是都写成比如八折七五折这样,所以用不到这个功能。
国外算价钱的时候可能要考虑到+x%的税,打折也是-y%,就用得上这个功能了
毕竟实际上在正经做科学计算的时候谁会打百分号啊
5#
期权匿名回答  16级独孤 | 2023-2-15 08:48:44 发帖IP地址来自 中国
不请自来,好久没用知乎回答问题了。
因为手机计算器(大部分情况下的默认计算器),都按照a+b%=a+a*b%或a*(1+b%)计算。
至于为什么要这样设计,是因为这会给众多歪果仁带来方便。
说实话,我家里的那个计算器的%键好久没用了,要算100元打八折,直接摁100*0.8……
但老外们不习惯这样做啦(中国的同志们自带换算),来看看下面几个题:

  • 300块钱的餐饮费,10%的小费,一共需要多少钱?
  • 2868块钱的iPad,20% off,实际付款多少钱?
对于第一个,我们习惯直接300+300*0.1。对于第二个,我们习惯直接2868-2868*0.2。当然,也有更直接的方法,譬如300*1.1。
但因为历史原因(初代计算器不支持多次输入,也就是说每次只能输入一次加减乘除),生活中又会出现大量类似上面这样的问题。为了提高效率,老外们就把300+300*10%,简化成了300+10%,直接得出330,类似的,2868-20%=2294.4。你猜怎么着?工作效率大大提升,针不戳!
后来就传到了国内,国内的大多数手机计算器都保留了这个传统。当你输入50%+50%的时候,手机先会把前面一个50%转化成0.5(因为它的前面没有数了,于是就默认转成小数,a%=a/100),后一个就理解为「加上前一个数的50%」,于是50%+50%=50%+50%*50%=50%+25%=75%=0.75。



本人手持荣耀20s,Magic UI 3.1,Android 10

-----一条不正经的分隔线-----
回答收获了这么多赞同和喜欢,我还有点受宠若惊,感谢大家的厚爱。看来本着认真的态度回答问题,比抖机灵要更受欢迎(至少在知乎这个平台)。





应该能体会我此时的心情吧

它就类似于我们口语中的「增加百分之几」「减少百分之几」,例如b比a多百分之几,意思是说b比a多a的百分之几,而不是多b的百分之几。重新翻翻人教版小学数学五年级下册「分数的意义与性质」以及六年级上册「百分数(一)」这两个单元,用里面的话说,b比a多(少)百分之几,其中的单位1是a,而不是b。计算器这样计算,也许是源于大众的口语。
另外看了看评论,再补充几点:

  • 这其实就是语法糖,有评论说太不严谨,数学运算当中搞不好会出大问题。第一,真正意义上的数学,百分数用的是非常非常少的,几乎不会用到,但还是为了保险起见,最好将百分数都转化成小数,这样能避免这个问题。
  • 有些品牌的手机里的计算器经过了魔改(只是大陆的手机改过,国外的手机仍然保留这一传统,否则老外们都会疯掉),确实不会出现此类问题,这是为了迎合大陆用户的普遍用法,不过大部分手机的计算器仍然保留了这个传统。
  • 感谢 @摇落一枝雨 帮忙指正本回答中的错误,现已去掉了相关内容。
  • 有的觉得这是厂商懒,迟迟不改这个bug,甚至还认为这是中国在外国面前跪久了的象征。想法别那么偏激谢谢。
  • 魅族及少数品牌的计算器修正了这一问题。
  • 经过评论区一些知友的指正和批评,现已删去“老外的数学不太好”相关的内容。
  • 我并不专业,只是对这方面比较了解,推荐看看楼下 @yang leonier 的回答。
又get到了一个冷知识√
此回答涉及到的有些数学表达式并不严谨,请见谅。
6#
期权匿名回答  16级独孤 | 2023-2-15 08:48:50 发帖IP地址来自 北京
手机计算器默认的一个算法,X+50%是自动作为 X+X*50%算的
这在日常计算比较用得到,
比如1480g洗衣液,边上写着加量20%,你只要凭直觉输入1480+20%就行了。
当然啦,数学上这是错的,我也相信知乎上的诸位都不会这么输入。
事实上,数学里也没有什么场景是会写成  1480+20%  这种形式的。
但是,如果有用户真的这么输入了呢?
是按显示标准答案1480.2,  或是当成1480*1.2=1776?你做为产品经理,应该怎么选择?
没错,会这么输入的,大概率就是一个不懂数学的用户在算一瓶1480g  加量20%的洗衣液。

小部分手机在调到科学计算器时,就会按照正规的数学法则运算。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP