作者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