![Twitter Twitter](https://srad.jp/static/topics/twitter_64.png)
演算子の優先順位でTwitterの意見が二分される 169
ストーリー by headless
二分 部門より
二分 部門より
「8÷2(2+2)」という数式の計算結果が「1」になるか「16」になるかでTwitterの意見が二分されている(Mashableの記事)。
この手の数式は以前からたびたび話題になっているが、関数電卓でも機種によって結果が異なる。Twitterでは演算子の優先順位にPEMDASを使うかBODMASを使うかで除法(Division)と乗法(Multiplication)の順番が変わるため結果が異なると誤解している人も多いようだが、PEMDASでもBODMASでも除法と乗法は先に出てくる方(左側)が優先であり、これによる計算結果の違いはない。実際の問題としては括弧付きの暗黙の乗法が除法に優先すると解釈するかどうかによる違いだと思われる。つまり、括弧付きの暗黙の乗法が除法に優先すると解釈するなら「8÷(2×(2+2))」(= 1)となり、優先しないと解釈するなら「8÷2×(2+2)」(= 16)となる。スラドの皆さんのご意見はいかがだろうか。
8/2(2+2) (スコア:5, すばらしい洞察)
8/2(2+2)
テストでこう書かれるとどっちが正解でもバツにせざるを得ないかも
\displaystyle{\frac82}(2+2)
か
8/(2(2+2))
か
割り算記号÷は小学生向けだから低優先度というのもオレオレルールな感じがする
Re:8/2(2+2) (スコア:1)
同意
出題ミスを意図的に使った用法でしかない
一意の解が必要で16を解にしたいなら
(8/2)(2+2)
Re:8/2(2+2) (スコア:2)
出題よりも解答で出てくる可能性のほうが圧倒的に高い。この書き方。
さらに導く過程で (8/2)(2+2) となったものを 8/2(2+2) と書いて
自分で次の行で 8/(2(2+2)) と解釈して次の展開している解答もままある。
オレオレルール (スコア:0)
RPNはいいぞ
Re:オレオレルール (スコア:1)
RPN いいですね
8 2 / 2 2 + * は
8 2 2 2 + * / と
区別できますからね
Re:8/2(2+2) (スコア:1)
アスタリスクなんて教科書に出てこない記号使ったらバツじゃないかなぁ。
# Juliaだと8/2(2+2)は1.0に、8÷2(2+2)だと1になります。
# 勿論、8/2*(2+2)は16.0です。
そもそも掛け算記号を省略する数式では (スコア:3, すばらしい洞察)
そもそも掛け算記号を省略する数式では割り算に÷記号は使わない。
掛け算記号を省略する数式というのは掛け算割り算でまとめた部分を「項」と呼ぶ。
この場合割り算は分数表記にする。÷の出番は無い。
つまり
8
ー
2(2+2)
と書くか
8
ー(2+2)
2
と書くかで区別できる。
じゃあ無理やり一行に書くために「8/2(2+2)」と書いたらどっちなのよ?
というギモンがわくが…少なくとも算数や数学の教科書ではそんな書き方はしない。
Re:そもそも掛け算記号を省略する数式では (スコア:2)
通常の乗法演算子『×』および除法演算子『÷』があり、それとは別に、
優先順位のひとつ高い演算子『・』(省略可能)および『/』があって、項を作るために使われる
という記法を考えれば、矛盾しないですね。(どこかでそういうのを見たような気がする)
Re:そもそも掛け算記号を省略する数式では (スコア:1)
問題の根幹はそこよね。
通常混在できない式表現が混在しているという「出題の問題点」をどう処理するか。
テストの問題としては出題がおかしいで終わりだし、
式構築者による何らかの演算表現であればその意図した所を読み解く他ない。
何かを説明するための数式に新しい表現や特殊な表現を組み込むことはままあるので、
意図的に乗除演算子省略表現と乗除演算子利用表現を混在している場合、
そこに意味があるとするなら省略表現は一段階優先度が高いとみなすほうが自然に思える。
でもそんなオレオレルールが適用されていると判断できるだけの根拠(文脈)が無いのでなんとも言えない。
Re: (スコア:0)
だわな。そして「8/2(2+2)」と記述したならば(日本の)教科書に則る限りは
8
ー
2(2+2)
と解釈するしかない
タレコミにある「括弧付きの暗黙の乗法」の解釈が云々ではなく、記述方法の問題
Google は (スコア:2)
16になりました。
x / y z = (x / y) \times z
ですので,16で良いとは思います。
s/cc/s (スコア:2)
これはどっち?
s/cc/s = 1
それとも
s/cc/s = 1/(c^2)
ちなみにccをsで置き換えるじゃないよ
Re:s/cc/s (スコア:2)
この解釈、排除の前に全く導けない。教えてくらさい。
Re:s/cc/s (スコア:2)
わかった
s/cc/s=s/(cc/s)=(s*s)/(c*c)
麿の見落としじゃ
16だ。と主張する人って (スコア:2)
・16でも間違いじゃない
・式が不完全
・義務教育で習ってない
とも言ってるけど、ワイが現役の時はこんな問題無かった。
類似の掲示板議論 (スコア:1)
読売のサイトですが「算数の基礎」と題して
https://komachi.yomiuri.co.jp/... [yomiuri.co.jp]
Re:類似の掲示板議論 (スコア:1)
誰ぞの日記でも貼ったけど
乗除混合演算式についての理解と指導に関する研究 : A÷B×CとA÷BCのタイプの式に焦点を当てて [nii.ac.jp]
Re:類似の掲示板議論 (スコア:1)
もう世の中全てRPNにしようぜ (スコア:1)
面倒な話は苦手だ
逆ポーランド記法 (スコア:1)
に変換すると
左結合
8÷2(2+2)
→ 8 2 ÷ [ * (2+2)+ ]
→ 8 2 ÷ [ * ] 2 2 +
→ 8 2 ÷ 2 2 + × = 16
右結合
8÷2(2+2)
→ [ 8 ÷ 2 * ] ÷ 2 2 +
→ [ 8 ÷ ] 2 2 2 + ×
→ 8 2 2 2 + × ÷ = 1
C言語の勉強したときは左結合で作ったな。
なつかしい (スコア:1)
6~7年前にも「6÷2(1+2)=1?9?」って、Twitterで全く同じ議論してたな
ω/2πって書いたらどう読むか、それが数字だと何が違うのか
中学で導入される項・係数・一次式のルールに沿って考えると
・小学生なら答えは「式が誤り」
・中学以降の答えは「式が誤り、しいて解釈するなら1」
・海外も基本的には「式が誤り」
っていう落とし所に落ち着いてたように記憶してる
数値は、関数である (スコア:1)
Number(arg) は、argをNumber倍した新しい数値を返す関数である。
…という風に見えている人も一定いるのではないかと考えますが、如何でしょう。
Re:数値は、関数である (スコア:1)
()を倍数を作る関数と見る流儀の場合、上付き表記は()より優先されることにするか、
あるいは、()より低優先の累乗演算子^を別に定義して、 2(1(2+2)^2) から1と括弧を省略したものと同じとみなすのも面白そうですね。
括弧はこの問題と関係ない (スコア:1)
8/2aと8/2(a)で結果が変わるのは適切でない
問題は積算記号を省略した場合の優先順位
未定義動作 (スコア:1)
結果は実行環境依存ってことで全員正解ではだめですか?
# こういう曖昧な式の計算結果に依存することが大間違い!!
誤解を生む記法 (スコア:1)
=A1/B1(C1+D1)
=A1/(B1(C1+D1))
の両方ともエラー吐きますね。文法の問題でもあるけど。
=A1/B1*(C1+D1)なら16
=A1/(B1*(C1+D1))なら1
エクセルはともかく、直感では1かもしれないけど、優先順位を守るなら見た目があまり変わらない16の方が自然に思える。
TI (スコア:0)
記事で取り上げられてるツイートに画像あったけど、TIのグラフ電卓で16になっちゃってるのがびっくり
省略記述は (スコア:0)
式を一塊で扱う為に使われるもの。
だから優先されなければおかしい。
Re: (スコア:0)
8÷(2+2)^2
8÷(2+2)(2+2)
で結果が違うのは納得できんわな。
Re:省略記述は (スコア:1)
8÷(2+2)^2 = 8÷((2+2)(2+2))
では。
付録を勝手にばら売りしてはいけません。
Re:省略記述は (スコア:2, 興味深い)
べき乗演算子まで含めると今度は
2^2/3が
22/3なのか
22/3なのか
の問題に……。
Re: (スコア:0)
それは割り算を分数で表記する(つまり項と項の間を結ぶのは基本的に優先度の低い+か-だけ)という前提のルールだし。その前提が満たされないのに機械的にルールを適用したらおかしくなるのは当然
そんなの (スコア:0)
一般人が学生を卒業するまでに普通に習う方法で1になるんだから1でいいじゃない。
Re: (スコア:0)
普通に習う方法で÷(小学校)と×の省略(中学以上)を同時に使うことはないと思うが。
Re: (スコア:0)
方程式では普通にありますよ?
そこに数値代入したものと考えれば何も悩むことはない
まさか元が代数かどうかで計算方法変わるとはいいますまい?
Re: (スコア:0)
逆でしょ。学校教育的には16になるはず。
まずカッコが最優先なのでそれを計算して、割り算掛け算は全て同一順位で扱うから16になる。
省略された記号を優先するルールは学校教育にはないよ。
Re: (スコア:0)
学校教育的には1ですよ。
記号省略されてたらそっち優先。ひとかたまりの値扱い。
Re:そんなの (スコア:1)
学校教育的には、こんな式書かない書かせないが正解だろ
みんなこういう話題好きだよね (スコア:0)
誤解しづらいような表記を心がければいいじゃんと思う。
プログラム言語なんかは演算順序が定まってて曖昧にはなりづらいけど、それでも最近のコンパイラは
注意してくれるからありがたい。
Re:みんなこういう話題好きだよね (スコア:1)
「心がけてればバグなんか入らない」と思ってるタイプかな
Google電卓は16になりました~、Googleだったら正しいのかよ、って
モロに「最近のコンパイラでも注意してくれない」曖昧ケースの話をしてるのに
読む人によって解釈が変わるようでは困る (スコア:0)
自分は最初8÷(2×(2+2)) = 1と計算してから「あ、これ違うわ」と8÷2×(2+2) = 16の答えを出しました
掛け算記号は省略しようがしまいが計算式の意味は同じだと判断したからです
自分が知らないだけで省略した場合は計算順序が変わるというルールがあるならば無知をさらす事になりますが
正直意見が真っ二つなのには違和感しかありません
何故数式がこんなに曖昧に解釈されるのかと考えてみて
たぶん普通の数式では÷や/はつかわず分数で表すんだろうな(だから問題が起きないんだろうな)という考えに至りましたが
プログラム等で横一列で書く場合もカッコ無しで統一した解釈があると思うのですが…
Re:義務教育受けてないけど... (スコア:1)
2(2+2)は2*(2+2)か、それとも(2*(2+2))かというお話
Re:くだらねえ… (スコア:1)
馬鹿だなあ
くだらないことだから雑談サイトで盛り上がれるんだろうに。
数式の記法を標準化しようとか規格を変えようみたいな「大事な」話だったら、それこそこんな場でやるかよ、って話じゃん
Re:くだらねえ… (スコア:1)
そのあるはずの明確な答えとソース文献の提示が無いから混乱してるわけで
自分の認識だけを示してくだらないと言われてもねぇ
Re:16以外ありえないだろ (スコア:2)
式の解釈を明確にするために、括弧と×記号を足した式を提示しているだけですよ。
文章をちゃんと読みましょう。
svn-init() {
svnadmin create .svnrepo
svn checkout file://$PWD/.svnrepo .
}
Re:16以外ありえないだろ (スコア:2)
いや、その 8/2(2+2) の解釈が問題なんじゃないの?
w/2πなら分母にかかる文脈が多いだろうし
1/nΣxなら分子にかかっている文脈が多いだろうし
Re:16以外ありえないだろ (スコア:2)
分野依存、文脈依存じゃないの?
w/2πを二分のオメガパイと解釈するのが少数派なのは、その場合wπ/2と書くのが一般的なだけだし
1/nΣxでもエヌシグマ分の1が自然なこともあるだろうし
気分的には8/2(2+2)=8/(2(2+2))だけど、要確認な甘い書き方ってだけだな
Re:16以外ありえないだろ (スコア:2)
もちろん、四則演算のルール的には 8/2(2+2) = (8/2)(2+2) だよ
Re:Syntax Error (スコア:2)
2(a+b) とかはOKでないとまずい気が。
svn-init() {
svnadmin create .svnrepo
svn checkout file://$PWD/.svnrepo .
}
Re:日本の教育委員会とかだと (スコア:1)
「4m x 100人」リレーなんて、走る暇もないなぁ。想像すると、ドミノ倒しみたいな感じ?