A君のたわごと ----------------------------------------------------------------------------- この物語はフィクションであり、実在するいかなる人物、団体名とも関係ない ----------------------------------------------------------------------------- 「計算式」 とある番組で8÷2(1+3)の計算果は? という問いに1と答えた人は間違いという解説があった。 正解は16とのこと。 解説をしている予備校の講師が自信たっぷりに解説していた。 混合計算の順は小学校3年で学ぶとのことであった。 しかし、この解説は正しくないと思う。 むしろ問題が正しくないと言ったほうが良い 16と答えた人は 8÷2*(1+3) という式だと思って計算している 1と答えた人は 8÷(2(1+3)) として計算している この問題のカギは 乗除算の混合計算において掛け算記号を省略した場合の優先順位の評価である。 「かけ算記号省略した場合優先度が上がる」 ここにその答えがある。 http://ir.lib.shizuoka.ac.jp/handle/10297/996080325001.pdf これによると1になるのが正解なようである。 残念ながら上記のルールは教科書には載っていないとのことである。 しかもこの式の解釈は国によって違いがあるようでUSAでは16が正解なようである。 つまり海外製の電卓と日本製の電卓では答えが違うことになる。 実際に電卓で計算すると答えは1になる機種と16になる機種がある 国産の電卓は一部の例を除いて1になる USA製(TI製)は16になる これは数式どおり入力可能な電卓での動作で、RPN方式や数式入力できない電卓 ではこういう問題はおきにくい。一部のHP製電卓では数式がInvalid Syntax Errorになる とあるサイトにはこの問題を調査した人がいるようでメーカーのサポートセンター に問い合わせたようである。 国産の電卓で16になる機種はUSAのメーカにOEMで供給している機種で メーカのサポートセンターによると、昔から答えが1になるようにしていたが、 開発中にUSAの会社から指示があり変更したようである。 しかし日本のユーザからの指摘で元の仕様に戻したようである。 ちなみにUNIXのbcコマンド やC言語ではSyntaxErrorになる 変数がアルファベット1文字で表現されると仮定した場合   8÷2(1+3)ではなく8÷2Aの場合はどうなるかを考えてみると良い もっとわかりやすい例では   12AB÷4B が   12xAxB÷4xBではないことがわかる 正しくは   12xAxB÷(4xB) である これらのことから最初の問題の答えは1になる 簡単に見えて、けっこう根が深い問題である。 人によって解釈が分かれるようでここに書かれたことが正解でないかもしれない。 最初に出てきた問の答えは ...式に誤りがある。 というのが正解なようである。