わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

11÷3=35÷11?

 いきなりですが問題です.以下の論証のおかしいところを指摘してください.

 11÷3=3あまり2
 35÷11=3あまり2
 したがって,11÷3=35÷11

 RSAの回の授業前テストです.なおRSAを含む数論アルゴリズムでは「3あまり2」の表記は使用せず,商または剰余を別々に求めます.Cほかいくつかのプログラミング言語で,11 / 3は商の3が評価結果となり,11 % 3は余りの2です.商と剰余の組を返す,関数またはメソッドも,言語によっては提供されています.
 さっそくですが「足りていない」解答例です.11÷3=3.666...,35÷11=3.1818...と,それぞれ割り進めて小数で商を求め,「したがって,11÷3≠35÷11」で終える答案です.これは,上記の11÷3=35÷11と「矛盾する」という指摘であり,「論証のおかしいところ」の指摘になっていないのです.分数で表す,差をとって0でないとする,といった答案も同様です.
 さて,最も簡潔に,上記の論証のおかしいところを示すとするなら,「初めの2行と,最後の行とで,=の使い方が異なる」となります.「使い方」は「意味」でも,差し支えありません.
 ただしその「意味」は何か,考えてみると,答えにくいところです(そんな事情から,1~2分で考えてもらう授業前テストにしました).
 別のアプローチをとってみます.11÷3を,Aに置き換えます.3あまり2は,Bです.35÷11はCとしましょう.
 そうすると,「A=B.C=B.したがって,A=C」と書くことができます.
 最終的に,「A=B,C=B ⇒ A=C というのは,余りのあるわり算では成立しない」と書けばよさそうです.
 授業でも,「意味が違う」と「A=B,C=B ⇒ A=C」を,指摘の例として紹介しました.
 今回の余りの話は,小学校の算数で注意すべき事項なのですが,大学で情報工学を学ぶ中にも,A=BとC=Bをともに満たすからといって,A=Cと書くことができないものがあります.俗に「オーダー」と言いますが,より正確には「ランダウの記号」です.x^3+3x^2+5x+7O(x^3)であり,8x^3-19x+45O(x^3)ですが,だからといってx^3+3x^2+5x+78x^3-19x+45とするわけにはいきません.
 授業では,そこまで言わない代わりに,鍵の事前共有でランダウの記号を使用しました.n人いる世界で,対称(秘密鍵)暗号を用いる場合,O(n^2)の異なる鍵が必要となるのに対し,公開鍵暗号だとO(n)組で済み,鍵の数が劇的に少なくなる,という話です.