++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

6 ÷2(1+2)

with one comment

昨日辺り(?)、以下のようなものがhatenaのホッテントリーに入っていたわけですが。

l 「6÷2(1+2)=?」という小学生レベルの問題? 大勢の人が「1」と答え半分以上が不正解

l 6÷2(1+2)=9と発表しているバカガジェット通信

どっちが正しい?

まあ、なんとでも解釈できますけどもねぇ。定義がないもの。数学者の脳内には無限の可能性が!

  1. clip_image002clip_image004 の省略形である。演算子の優先順位は×に準ずる
  2. clip_image002[1] は隣接演算子という目に見えない新しい演算子の導入と考える
    1. 優先順位は×演算子に準ずる
    2. 隣接演算子の優先順位は乗除算よりも高い
  3. clip_image002[2] は関数適用 clip_image006 の省略形である。関数 clip_image008 と定義する。

clip_image010 の結果は、

  • 1.と2-1.なら9
  • 2-2.と3.なら1

かな。

上記匿名ダイアリーの「省略は多項式である」説は初めて見た。それって結局、積の省略に帰着するような。項は結局、「項または(式)の積」で定義されることが多いので。

目に見えない演算子

一般に、目に見えない演算子(invisible operator)って呼ばれるものには4種類あります。

で、Unicode なんかだと、この見えない演算子のためにコードが割りあたってたりします。

見えない乗算

まあ、一番使われるのはこれですが、clip_image002[3]clip_image004[1] とみなすもの。

Unicode だと U+2062(INVISIBLE TIMES)。

見えないコンマ

隣接する文字の間には暗黙的コンマが挟まれて、リストとみなされるもの。

例えば、clip_image012 と書く場合、clip_image014clip_image016 ではなく、clip_image018 とみなされます。

Unicode だと U+2063(INVISIBLE SEPARATOR)。

見えない加算

いわゆる帯分数(mixed number)。小学生で習うあれと、中学以降で clip_image020 扱いするのとでみんな混乱する嫌な奴。

clip_image022 って書いたら「1と3分の2」と読んで、clip_image024 とみなすという。

Unicode だと U+2064(INVISIBLE PLUS)

見えない関数適用

数学だと、clip_image026 を単に clip_image028 と書いたりするわけですよ。

例えば、線形代数だと「線形写像の適用」と「行列の乗算」がほぼ同じ意味なので、関数適用と乗算を区別する意味もなく。「どっちが正しい?」のところで書いた「clip_image030 は関数 clip_image032 の適用である」という解釈も、これ(線形写像の適用=行列の乗算)に由来します。

この場合、厄介なのは、clip_image034clip_image036 の意味になったりすること。これも、線形代数だと、写像の線形性から「満たされるべき性質」なので問題にならないわけですが。

で、こういう clip_image028[1]clip_image038clip_image040 の間には、関数適用演算子が省略されているものとみなします。

Unicode だと U+2061(FUNCTION APPLICATION)。

×÷の優先度

clip_image010[1] とあった場合、「×と÷は同列」「同列のものが並んでいたら左から」というのは割と皆様同じ認識な気がしますが。

ただし、clip_image042 の「+と−は同列」というのと比べると、多少迷いが出そうな。この違いの方がむしろ興味深く思ったりも。加減算と乗除算で受ける印象の違いはどこから来るのか。

普段÷記号を使わないから?

÷とか書かないし

何のために clip_image044 って書き方すると思っているんだ!

数式に限らないんですけども、曖昧性なく意図を伝えるって大事ですからね。一瞬でも「どっちだ?」って迷うなら、それは書いてはいけない。

あと、個人的には、交換法則を満たさない演算子を並べるとかすごく抵抗感が。clip_image046 とか書くくらいなら clip_image048 の方がまだ好まれそうな。

上記の「加減算と乗除算の差」も、「clip_image050 を略して clip_image052 と書く」(括弧を取った程度)と「clip_image054 を略して clip_image056 と書く」(ずいぶん様変わり)の差ですかねぇ。

動くパーサー持ってこい

仕様書も何もないものに対して「これはこういう優先順位なんですよニコッ」とか言われたら怖くね?

仕様書だけあっても怖いんですけどもねぇ。UMLなんかが分かりやすい例かと思いますが、10人いたら最低でも10個は方言が出てくるでしょう。

結局、何らかの形で“実装”がないと、認識がぶれます。(逆もまたしかり。UMLも、「astahで書いて」とか言えばぶれがなくなるもので。)

広告

Written by ufcpp

2011年5月7日 @ 23:41

カテゴリー: 数学

コメント / トラックバック1件

Subscribe to comments with RSS.

  1.  もし本当に定義がないのなら、我々の生活に役立つように定義してほしいところですね。算数は役立つためにあるのですから。
    いや、この例で何が何の役に立つのかは分かりませんが・・・^^;

    ナムアニクラウド

    2011年5月20日 at 14:26


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。