×と÷か、・と/かを統一せずに出題するのは、ひっかけ以外の何者でもない。それでドヤ顔はどうかと

これは表記がミスを誘う出題だよなぁ。6÷2(1+2)だと大抵の人は6/{2(1+2)}と解釈してしまう。6÷2×(1+2)と書くべき ≫「6÷2(1+2)=?」という小学生レベルの問題? 大勢の人が「1」と答え半分以上が不正解 http://t.co/VdFNkid
2011-05-06 15:17:47
まてまて、間違いも途中で6÷2×3て書いてるじゃ無いか。それで間違うのはおかしいぞ。 「6÷2(1+2)=?」という小学生レベルの問題? 大勢の人が「1」と答え半分以上が不正解 - ガジェット通信 http://t.co/QrlqIzg via @getnewsfeed
2011-05-06 15:23:52
掛け算・割り算について、×と÷か、ドット(隣接)とスラッシュか、組合せを統一せずに出題するのは、ひっかけ問題以外の何者でもないな。それでドヤ顔するのは、どうかと思う
2011-05-06 15:32:06
6÷2×(1+2)ならば、小学校で習う結合規則により9だが、これが6÷2(1+2)という表記と等価かどうかはよく分らない。というのは、私の記憶する限り「乗算記号の省略」と「除算符号」が混在した式というのは学校教育では出てこない。
2011-05-06 16:11:21
そもそも 6÷2(1+2) は小学生レベルではない。小学生レベルならちゃんと 6÷2×(1+2) と書かなければならない。細かい違いと思うかもしれないけれど、結合規則ってのは方言がありうる微妙なものなのだから、そこまで気を遣って問題を出さなければ、ドヤ顔する資格はない
2011-05-06 16:19:33
ポーランド記法ならばむしろ (* (/ 6 2) (+ 1 2)) というかっこのオバケのほうがおなじみですね!
2011-05-06 16:30:47
我々プログラマは mul(div(6, 2), add(1, 2)) みたいな表記は見慣れているから、別にポーランド記法に馴染みがないわけでもない。
2011-05-06 16:34:20
演算内容が前に来るので理解しやすいのと、(+ 4 3 2 3) のような略表記が許されてる辺りがメリットか。後者は逆だと難しいよね。
2011-05-06 16:36:33
@kenjop かっこ導入していいなら逆ポーランドでも (4 3 2 3 +) と書けば何のあいまいさもないです
2011-05-06 16:42:07
@AoiMoe 曖昧さは出ないけど、綺麗な処理系を思いつけない・・・w 閉じ括弧時にスタックに残ってる分開き括弧までまとめて処理・・・か。
2011-05-06 16:48:16
演算子の優先順位を意識して書くと、格好いいコードになるけど、普段使わない演算だと間違えるよね。カッコ悪くても、カッコつける方がいい。
2011-05-06 16:34:40
昔よくやらかしたのが、Cのコードで「かけ算をシフトに換えた時の優先順位の違い」にハマることだった。なんでそこが違うんだよと思うんだけど、きっと歴史的な事情があったんだろう。
2011-05-06 16:36:06
シフトとかけ算に優先順位の違いがある歴史的理由は、よくわからん。多分、昔の計算機だったらそんな最適化を手でやってた例は山盛りあると思う。その度にみんな泣いてたとしたら、もったいない話だ。まぁ、今時そんな最適化は手ではやらんが。
2011-05-06 16:40:57
昔々、ラスターイメージを速く印刷するために、24bit単位のビットの転置とかってコードを、一生懸命最適化した。1日ぐらい頑張って桁違いに高速化出来たけど、今はそんなことをする意味なんてない。
2011-05-06 16:44:22