「等値」と「等価」
「プログラマーの力量を見極める--面接官になったら尋ねるべき質問実例集」が話題になっているようです。そのうちの、
- 「等値」と「等価」の違いを説明してください(この質問はTechRepublicのTony Patton氏に教えてもらったものである)。
については、私も気になってので少し反応しておきます。
まず、国語的には、「等値」は「値が等しいこと」であり、「等価」は「価値や価格が等しいこと」ですが、実際のところそれほど厳密な区別はありません。もちろん、特定分野において、それぞれに明確な定義を行った場合は別です。ここではそれを正確に把握できるほどの情報がありませんので、何ともいえません。
もっとも、これは翻訳ですので、原文では「equality」と「equivalence」の違いということのようです。数学では、equalityは等式ですので、A = B のことです。一方、equivalenceは同値のことで、A ⇔ B、すなわち、AならばBとBならばAが同時に成り立つことを意味します。値が同じであることと、意味が同じであることの違いだともいえます。
Cの場合では、equalityというのは、equality operator(等価演算子)とかequality expression(等価式)ということで、==を使った値の比較を意味しています。一方で、equivalence(またはequivalent)はというと、++E と E +=1 とか、!E と (0 == E) が同じであることを表すのに用いることになります。
ここで注意しなければならないのは、JIS X3010:2003では、==を意味するequality operatorを「等価演算子」と呼んでいることです。多くの人は、こちらを「等値」だと考えていますし、リンク先の記事もそうなっています。ですので、日本語にした場合は、このような紛らわしい訳語ではなく、もっと明確な語をあてるべきではないかと思います。
すべての事例をひとつひとつ取り上げることはできませんが、別の話の場合は当然別の説明が必要になることでしょう。つまり、文脈に大きく依存するわけです。ですので、適切な話の流れや、前提となる背景がなければ答えられないと思います。にもかかわらず、リンク先の記事を見て、自分がよく理解しないまま(面接の場でも、それ以外でも)質問する人が多発するような予感がするのは私だけでしょうか?
この記事のトラックバックURL:
続・「等値」と「等価」
from 株式会社きじねこ on 2010-05-09 (日) 18:19Googleで検索順位一位になっていることが原因かもしれませんが、今ごろになって、「等値 等価」とか「等値 等価 違い」などの検索フレーズで訪問される方が増えています。前回の記事は、

一応補足
一応補足しておくと、ソートなどのアルゴリズムを考える上では、equivalence は !(a < b) && !(b < a) のことですね。