どっちなの問題

こんにちは、イメージマジック三浦です。
弊社本社がある小石川一帯は最近大きいビルの建設が終わり、テナントも入り始めてきました。工事はまだまだ継続中ですが、工事が終わったらどんな街になっているのか気になります。
最近解釈が分かれやすい表現は極力避けたいと感じた例を見かけたので、人によって解釈が分かれる、または分かれやすい例を「どっちなの問題」と名付けて書いてみます。

こんな数式を見かけました

いきなりですが、四則演算の問題です。以下の式を計算するといくつになるでしょうか。
6÷2(1+2)
回答は2通りに分かれるそうです。
説1:6÷2(1+2)=3×3=9
説2:6÷2(1+2)=6÷6=1

真実が実は2つ?

回答が2通りに分かれるポイントは、カッコの中を計算した後の掛け算と割り算をどういう順番で扱っているかです。「2(1+2)」は「2×(1+2)」の掛け算記号が省略されているのですが、省略される掛け算を扱う優先順位が異なることで答えが2説出てきます。
  • 説1:カッコの中を計算した後、左から順番に割り算と掛け算を実行する。
  • 説2:カッコの中を計算した後、省略されている掛け算を優先して実行し、その後で割り算を実行する。

プログラム言語での扱い方

コンピューターではこの数式をどう処理するのか調べてみましたが、そもそもプログラム言語では掛け算記号の省略表記ができませんでした。参考として、手元にあるpython3.7で省略表記しようとした時のTraceback・説1の結果を出す式表記・説2の結果を出す式表記を書いた結果を掲載します。
(結果が少数表記になる点は、ここでは考慮しないことにします。)
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> 6/2(1+2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>>
>>> 6/2*(1+2)
9.0
>>>
>>> (6/2)*(1+2)
9.0
>>>
>>> 6/(2*(1+2))
1.0
>>>
カッコをつけることで、掛け算・割り算の優先順位が明示されています。

正しい答えはどっち?

正しい答えは説2の方でした。実際に関数電卓で計算してみると、説2の答えが出てきます。
これは解釈が分かれやすい「どっちなの問題」です。

その他の「どっちなの問題」

今回のテーマから派生して、解釈が分かれる「どっちなの問題」の例を挙げます。

0の0乗はいくつ?

「xの0乗」は、0でない実数(-1のルートを考えなくてよい世界)では常に1ですが、0の0乗はどうなるのかは数学の中でも統一されていません。1と決めると都合がいい分野と「定義しない」と決めると都合がいい分野があり、各分野が都合のよい方を定義に採用して理論構築しています。

旧暦2033年問題

今使われている「グレゴリオ暦」のひとつ前「天保暦」の問題です。天保暦では2月・5月・8月・11月を設定し、設定後に他の月を設定します。しかし、100年に一回程、設定できる月が1つに定められないという事態が発生するケースがあり、直近では2033年~2034年に起こるというものです。
俳句で使う季語は旧暦の春夏秋冬で区分けされる等、決められないことによる影響は小さくないようです。こちらは一定のルールを決めて解決しようとしているようですが、解決方法が複数あって検討中のようです。

詰将棋【最後の審判】

詰将棋は、限られた自軍の駒を動かしながら相手の王将を詰ますパズルで、本将棋のルールに加えて詰将棋独自のルールがあります。本将棋のルールでは「禁じ手」が規定されていますが、「最後の審判」は詰将棋のルール上「禁じ手」を指すしかない状況が双方で生じた時に勝敗を判断できない、という状態が発生する作品です。
便宜上、詰将棋の1種として記載していますが、実は詰将棋として成立するかも結論が出ていません。 こちらについて興味のある方は、【詰将棋 最後の審判】で検索してみてください。

注:単に【最後の審判】で検索すると、ミケランジェロの「最後の審判」がヒットします。これも 「最後の審判」と言われて、絵なのか詰将棋なのかで解釈が分かれる「どっちなの問題」の一例です。