作者zg0608x (究极阿玮)
看板NHU_Talk
标题Re: [问题] FB数学题
时间Sun May 1 18:12:16 2011
我一开始看到的时候
第一个反应也觉得答案是1
但是还有另一个答案是9
我才仔细来看怎麽样会是9
在详细看的过程中
我才发现我有先入为主的观念把2(1+2)的结果给先做出来
此时人生的回忆走马灯快速启动~
忆起我小学的时候在信义路的尚阳补习班补数学
老师是当时年轻可爱的小杨老师
小杨老师告诉大家说:
「看到括号要记得把里面先做,括号前面有数字就是先跟里面的数字乘起来」
(我实在不确定她有没有说过例外状况= =)
所以我很自然的就把式子变成
6÷(2+4)=?
6÷6=1
可是我思考第二次的时候发现
如果用我大学学到的程式语言运算子逻辑去想
6÷2(1+2)=?会变成 6/2*(1+2)
()的优先顺序会大於*,/,%
所以会变成6/2*3
最後就会变成3*3
答案就会是9
若是依照小杨老师告诉我们的逻辑
要将2(1+2)先做的话
要用括号包起来
优先顺序层级才会跟第一个除号一样
式子在程式语言中变成6/(2(1+2))
答案才会是1
所以用程式语言的运算子优先顺序来看 6÷2*(1+2)
乘号不应该比括号先做
但是之前电视上的王老师有讲说「这时应该加上一个隐藏的中括号」
所以会变成 6÷[2(1+2)]=?
好啦~
麻烦这些数学老师去跟C语言之父Dennis Ritchie辩论一下吧
我这种弱弱嫩咖在旁边看就好
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.42.89.25
1F:推 Ekmund:那是因为你把2()看成2乘上里面的数 你程式这样写的话 05/01 18:26
2F:→ Ekmund:他只会告诉你没有定义2()这个函数._. 05/01 18:27
3F:→ Ekmund:若是6/2*(1+2) 答案一定是跑9 05/01 18:27
4F:→ Ekmund:若是你希望的答案是1 那代表你希望在这部分乘法优先大於除 05/01 18:29
5F:→ Ekmund:人家也不是没提供括号给你用 这就是programer的问题喔 05/01 18:29
6F:→ zg0608x:我的意思其实讲得很明白了 程式码是程式码 解读式子是看人 05/01 18:34
7F:→ Ekmund:所以你要求数学老师跟C语言之父辩论啥 lol 05/01 18:35
8F:→ zg0608x:就是说我很嫩 没有解释这题的权力麻== 05/01 18:36
9F:→ Ekmund:这跟权力无关啦...你弄错的是 程式中不存在这样的问题 05/01 18:37
10F:→ Ekmund:所以就算叫Dennis去辩也一样会变像今天这样的争执啊XD 05/01 18:38