2021年4月1日木曜日

マイナンバーカードの弱点




── パスワードの強度


▼パスワードの更新申請
 先日、区役所からマイナンバーカードで使用している電子証明書用の暗証番号(パスワード)の更新を促す書類が届いた。
 マイナンバーカードを作ってから5年が経とうとしている。国の定めた規則では、カードを作成した日から数えて5回目の誕生日の前までに更新手続きをしないとパスワードが使えなくなると言う。ただ、パスワードは使えなくてもカードだけを使うのは許されている。

 マイナンバーカードには次の4種類のパスワードがある。
 (1)署名用パスワード(英数字6~16文字)
 (2)利用者証明用パスワード(4桁)
 (3)住民基本台帳用パスワード(4桁)
 (4)券面事項入力補助用パスワード(4桁)

 (1),(2)は電子証明書で使われるもので、今回はそれが失効するらしい。私は、自動車の運転免許を(期限切れを利用して)自然放棄して以来、身分証の代わりになるものが欲しくて2017年にマイナンバーカードを作成した。以来、映画館や美術館などで入場する際に利用させてもらっている。

 しかしこの間にパスワードを使ったのは特別定額給付金を申請したときの一度だけである。高齢者の私めがパスワードを今後も必要とするかどうか慎重に考えた末に、やはり更新しておくことに決めた。何事にも想定外のことが突然起こる世の中であるからして、もしかするとまた給付金を貰う必要が起こるかもしれない、と卑しくも(?)先読みをした訳ではない。
 実は、最初にパスワードを設定したときに生じた疑問を、この機会を利用して明らかにしておきたかったのである。

▼5年前のこと
 5年前にマイナンバーカードを作成したとき、初回だったので私は区役所にカードを受取りに行ったのだが、区役所の入口のホールにはマイナンバーカードを受け取りに来たと思われる人々でごった返していた。入口で番号をもらい、その番号の呼び出しを待つ方式なのでさすがに長い行列はなかったが、座るところがない人はただ立って待つしかない状態になっていた。今日は大変な日になるなと私は思ったのを覚えている。

 2時間以上待ってやっと自分の番号が呼び出しの掲示画面に表示された。窓口付近に行くと、最初だから全員が専用の端末(数台しかない!)の前に座って自らパスワードの設定作業をやらされていたのである。なるほど、これでは待たされる訳だ。

 やっと私の順番になった。数少ない端末の一つに座って私はあらかじめ郵送されてきた「個人番号カード・電子証明書 設定暗証番号記載票」という用紙に記入しておいた通りにパスワードを設定しようとした。すると担当者は「英字はすべて大文字にしてください」と言うではないか。意外であった。パスワードを作るときの常識として、英字(大文字と小文字)と数字を混ぜて構成するのが推奨されている。更に特殊記号が使えるとなお良い。私は担当者に大文字に限定する理由を聞きたかったのだが、会場が異様に混んでいたので自重した。

 私は指示にしたがって小文字で設定する積りだった文字をすべて大文字にしたのである。帰宅後、忘れないようにと暗証番号の記載票に大文字の英字と数字だけで構成したパスワードに書き換えて、更に事の顛末をメモしておいたのである。

 その後、このときのことを思い出す度に、あれは担当者の勘違いだったのではないかと思うようになった。大文字と数字しか使えないなどということはあり得ないことだ。
 しかしその後、それを疑問視したり不満を表明したりする人に一度も出会ったことが無かったから、私は、これは担当者の勘違いだと確信するようになった。今度機会があったら小文字も可能であることを確認し、パスワードの変更をしてもらおうと考えていたのである。

▼マイナンバーカードの弱点
 やっと、5年振りにその機会が訪れたのである。私は窓口で担当者に提出書類を渡しながら聞いてみた。すると担当者はパスワードの変更はできますが小文字は使えませんと言うではないか。5年前の担当者の言葉に間違いはなかったのである。小文字が使えないのなら敢えてパスワードを変更する必要はない。更新だけにしよう。

 仕方なく私は、更新手続きのみをすることにして端末の前に座ったのである。既に画面には本人確認に必要な(2)のパスワードを入力する場面になっていた。それを入力して画面を見ると、
 からまでの数字を四角で囲んだものが10個、
 からまでの英字を四角で囲んだものが26
が整然と並べられ表示されていた。

 それを見て、私はなるほどそういうことなのかと合点がいったのである。たった36個の字種しか使えないようにしてあったのである。使える字種の数が少なければ、それだけ設定時のミスは少なくなる。使うときのミスも少なくなる。これは明らかに私のような高齢者にも扱い易くするための配慮だったのかもしれないと考えた。高齢者にも優しいシステムを構築するためなのであろう。

 しかしこれでいいのだろうか。大文字・小文字の区別を許せば字数は増える。字数を増やせば文字の組み合わせの数は飛躍的に増える。パスワードの安全性も飛躍的に高くなる。特殊記号を許せば更に安全性は高まるに違いない。

 このシステムは、おそらく高齢者を意識して使える字数を絞ったのだろうが、それは取りも直さずパスワードの安全性を犠牲にしたことになる。カードさえ手に入れればパスワードを破るのは比較的簡単になるであろう(*1)。今後、悪用されるケースが増えていくのではあるまいか。
【注】(*1)パスワードの強度は普通5段階で評価されることが多いが、これは最低レベルの強度である。
 防衛策としてできることは、長いパスワードにすることしか方法がない。高齢者にとっては、無意味にも思われる長い長い文字列を記憶するのは更に大変なことである。決して高齢者に優しいシステムとは言えなくなる。

 国は、健康保険証などもマイナンバーカードに統一することを考えているようだが、そのベースとなるマイナンバーカードのパスワードの仕組みが脆弱であるとすれば、日々の生活で安心して使えないことになる。多機能化するのは危険であろう。

 今回のパスワードの更新手続きの際に担当者に言われたのだが「更新後24時間はパスワードを必要とする目的では使えません」とのことであった。リアルタイムで更新されないのであれば増々我々の日々の生活に影響することになる。早急の改良が望まれる。


2021年3月14日日曜日

今だから話そう「『ソフトウェアの法則』の裏話」




── 私の「記憶の引出し」から

はじめに
 コロナ禍の中で家に引き籠っていると、外部からの刺激が少ないせいかエッセイのネタがさっぱり浮かんできません。そんなとき古い資料を整理していると(“整理”と言うと聞こえは良いが、単に引っ掻き回しているだけなんですが)、昔書きたいと思ったが結局は書かないままにしてしまったテーマや出来事の数々が思い出されてくるのです。

 そして、捜している資料が運よく見つかったりすると、それを読み始めて止まらなくなってしまうのです。そんなときは必ず若い頃の気持ちに戻ってしまい、私の“記憶の引出し(*1)”をフルに活用すれば、何か書けそうな気がしてくるのです(困ったものです)。そして体力が続くかどうかも考えずに年甲斐もなく厄介な仕事に挑戦してしまうのです。文章を書くことはボケ防止にもなるからと自身への言い訳に利用しているのです。
【注】(*1)「記憶の引出し」については、別途紹介することにします。
プログラムの掲示
 古い資料の中から偶然見つけたのですが、以下に示すような社内掲示板に載せた記事(program)の控えを発見しました。
 先ず、これが掲示板の読者に向かって私が何を伝えようとしたかを読み取ってください。冒頭の日付が『ソフトウェアの法則』という本の発売日になっている点がヒントになるかもしれません。

登録者 (TSE)木下 恂 990092050039   登録日時 95-10-25 13:00
表題   program

program:
  //* 『ソフトウェアと‥‥』の加筆修正版を読みたい方へ

declare:
  Book = "ソフトウェアの法則(中公新書)";
  me   = TgMailAddress(990092050039);

start:
  if ( you.want(to.Read(Book)) )
  then if ( your.conditions == TRUE )
       then
       {  send(mail) to(me) title("贈呈希望: '社内便宛先' 'YourName'");
          wait(a_few_weeks);
          if ( you.are(fortunate, enough, enough, enough & enough) );
          then you.may(receive(Book));    //* may = かもしれぬ
          else goto BookStore;            //* with money
       }
       else goto BookStore;               //* asap
  else ;  //* I still hope you goto BookStore. (挿絵もあるでよ)
  exit;

 your::conditions
{  1:社内便が使える
   2:締切り(この掲示が消される)前である
   3:自費で買えない事情がある
   4:読んだ後、複数の知人に購入を勧めたい
   5: me の悪口は言わない
}

how_to_select
{  //* 私情は一切まじえないことを誓う(たとえ応募者が東芝社長でも)
   1:i = 10 (贈呈する本の冊数)              //* え? ケチだ?
   2:応募者の名を、到着順に表 T へ登録する  //* 面倒だけど
   3:重複応募した人の名を T から削除する    //* 断固として
   4:表 T が空なら、終り                    //* むむ? 人気がない
   5:表 T に 0,1,2, ... と順番号を振る      //* ゼロから数える
   6:n = 最後の応募者の順番号               //* 最後の人できまる
   7:if (n<i) then { 全員当選; 終り }       //* よかった、よかった
   8:m = 順番号 n の人のメール番号          //* 英字があれば 0 とする
   9:k = m mod (n+1)                        //* 計算が面倒なので下5桁
  10:順番号 k から k+i-1 までを当選とする  //* 表はサイクリックに見る
  11:終り                                   //* やれやれ
   //* 当選者は、メール番号の下5桁と名前の頭文字のみで発表します。
}

end; //* 本掲示は、vox掲示板管理者の承認を受けています。


 プログラムとは、自分の意思(プログラムの内容)を人やマシンに伝えるためのものですから、伝わりさえすればどんな言語で記述されていても構いません。ここでは英語風に書いてみました。誰にでも大体の意味は分かるだろうと思います。ただ、読む人が理解したいと熱意を持って努力するかどうかで理解度も変わってくるものです。

▼プログラムの意味
 前出の“program”は、実は発売したばかりの『ソフトウェアの法則』という本を「希望者に贈呈しますよ」と伝えるための掲示だったのです。しかし『ソフトウェアの法則』という本のことを知らない人が多いと思いますから、先ず、本が作られた経緯から説明することにしましょう。

本が出来上がって‥‥
 この本が出版された(1995年)当時、世間では「パーキンソンの法則」とか「マーフィーの法則」とかが有名でした。私はコンピュータのソフトウェア開発の分野で仕事をしていましたから、“ソフトウェアの法則”があっても良いのではないかと考え、ソフトウェアに関するエッセイを書き上げるとその最後の部分に、関連するテーマで“ソフトウェアの法則”の新作を添えるようになりました。

▼掲示板へのこだわり
 そのときエッセイを投稿していた場所が実は全社的に活用されていた社内掲示板だったのです。いろいろな掲示板が作られていましたが、私が主に活用していた“vox”(ラテン語で“声”の意)という名の掲示板にはコンピュータ関係の情報が掲示されていましたから多くの参加者がいる特に活気のある掲示板だったと思います。ここで私は、コンピュータのソフトウェアに関する投稿を通じて多くの仲間から鍛えられてきたのです。

 その結果として生まれた本ですから私は「掲示板」にこだわりたかったのです。たとえば、章番号の1,2,3‥‥は、掲示板Ⅰ, 掲示板Ⅱ, 掲示板Ⅲ‥‥ と表記されています。最後の「あとがき」の後ろに置かれた“ソフトウェアの法則集”は「特定掲示板」と命名され裏表紙の方から表表紙の方へ向かって読むように工夫されていました。しかし、こういった掲示板にこだわった造りに気が付いた人はいなかったようです。

 そうやって書き溜めたエッセイと法則集とを一冊の本にまとめて出版することになったとき、私は、密かに書名を“ソフトウェアの法則”にしたいと考えました。同時に掲示板上で知り合っていろいろと協力してくれた方々にその本を贈ることができたらいいなぁと思ったのです。

 多くの技術者が見る掲示板ですが、特にプログラミングに関心のある方々を選んで贈呈するにはどうしたらよいか、といろいろな方策を考えました。そしてプログラム
を記述するプログラム言語と同じようにアルゴリズム(論理)を使って私の意図を program 上に詳細に記述してみたのです。

 出版された日の午後、私は会社の休憩時間になってからこれを掲示板上にアップしたのです。
 このプログラムで私が何を伝えたかったのか、プログラミングに関心のない方でもある程度は理解してもらえたのではないかと思います。いかがでしたか。

書名について
 実は、本のタイトル(書名)を“ソフトウェアの法則”とするに当たっては大きなリスクを抱えていたのです。
 当時書き留めていた“出版までの記録”(以下に示します)が残っていたので、それに沿って説明することにします。「ソフトウェアの法則」という書名を思い付いたのは原稿を出版社に渡す前のことですが、正式に出版社から決定通知をもらったのは 1995-8-25 のことでした。

出版までの記録
出版までの記録

 出版の初期の段階から発行されるまでの8ヶ月間、このタイトルが他の出版物で使われてしまう可能性があるので心配していたのです。特に正式に書名が確定してからの2ヶ月間はストレスは相当なものでした。もし他の本で使われてしまったら書名の変更が必要になります。代わりとなる適当なタイトルは思い浮かびません。出版予定日の前日(1995-10-24)の夜になって、私はやっと「これで大丈夫だ(!)」という確信を持つことができたのでした。

 そこで気が大きくなったのでしょう、お世話になった社内掲示板の仲間たちに贈呈する計画を実行に移すことにしました。単に「本を贈呈をする」と言うよりも私の「ソフトウェアと〇〇」という一連のエッセイの読者でプログラミングに関心のある方に贈りたいと思って工夫をしたのです。

当選者は‥‥
 program に書いた通りに10名を決定しましたが、締め切り後に2名の方が欲しいと申し出てきたので、結局12名の方々に贈呈することにし社内便で発送しました。
 ところが、実は最近までずっと12名の方に贈呈したと思い込んでいたのですが、この文章を書きながら念のため過去の記録を調べてみました。すると驚いたことに14名に贈ったという記録が出てきたのです。当選者の名前と社内便の発送日時から考えて、どうやら以下のようなことがあったと解釈しました。

 program の解読に成功し、かつ細かい応募条件を満たして「本が欲しい」と伝えてきた人は予想外に少なかったのです。最終的に応募者は12名となりましたが、2名だけを当選外とするのは気の毒になってしまいました。結局12名全員の当選にしてしまったのだと思います。その後で、締め切り後の応募が2名あったというのが実際のところだったようです。社内便での発送日の違いからそのように解釈しました(人の記憶などというものは本当にあてになりませんね)。

 当選のためのルールを勝手に決め、その挙句に勝手に変更しているのですから世話がありません。約束通りにできなかったことを申し訳なく思っています。

 後で知ったことですが、同じ東芝グループの会社間でも社内便が使えない事業場があるのだそうです。最初から応募を諦めて“goto BookStore;”に従って書店に走ってくれた方々がいたことも知りました。応募者の数が少なかったのは、多分そのためかもしれません。重ね重ね申し訳ないことでした。

本に虫が‥‥
 「本の虫」と言うと、それは四六時中本を読んでいるような読書の好きな人のことですが、書物に取りつく“シミ”や“シバンムシ”などの本当の虫を指す場合もあります。しかしここで言う“本の虫”とはコンピュータの虫(バグ)のようなものを指しています。つまりプログラムのバグと同じで誤植のことです。

 発売前に十分な校正作業を行って誤植のない状態にするべく努力するのですが、初版の段階ではいろいろな虫が発見されることが多いのです。この本も例外ではなく、残念ながら出版後にいろいろなバグが出てしまいました。それも私のミスで生じたとんでもない虫を発見してしまったのです。

 発売直後のことでした。家で何気なく本のページをパラパラとめくって見ていたときに突然気が付いたのです。「ソフトウェアと環境」の章で使った挿絵に間違いを発見したのでした。この章で私は、コンピュータの開発環境について書いているのですが、その中で日本の家屋が狭いことを欧米人が兎小屋“rabbit hutch”と揶揄していることに触れました。そのため挿入したカットが以下のものだったのです。


 ( 修正前の挿絵 ) 

 このカットを描いたとき、止せばよいのに表札を描いて“Rabit”という名前を書いてしまったのです。何気なく見ていて突然気が付いたのですから、普通なら自慢したい(*2)ところですが、その瞬間の私は背筋が凍り付くような想いでした。
【注】(*2)プロのプログラマになると、他人の書いたプログラムリストをチラッと見ただけでバグを見つけてしまう名人もいるのです。
 恥ずかしい。どうするか? こんなみっともない状態を放置することはできません。私は出版社に電話して挿絵の入れ替えをお願いしました。それが“出版までの記録”の日付 11-02 の場所に記録されています。

 幸い、出版社は挿絵の入替えを許してくれました。修正されたカットは早速出版社に送られ二版以降は修正されています。修正版は私のウェッブ上の“美術館”の中に『「ソフトウェアの法則」で使った挿絵の原画集』として飾られていますが、この挿絵の原画だけはその後行方不明になっています。飾られている修正版は二版以降の印刷物からコピーしたものです。興味のある人は比べてみてください。

【追記】
▼なお、2001-11-23 以降は『ソフトウェアの法則』は、電子版として読むことができます。

▼『ソフトウェアの法則』の正誤表は、以下の場所で見ることができます。
  http://www.hi-ho.ne.jp/skinoshita/seigohyou.htm




2021年2月23日火曜日

今だから話そう「幾何の問題 後日談」




── いろいろな“解答”が届きました


はじめに
 “今だから話そう(4)”で「幾何の問題・正解集…」を紹介しましたが、例の幾何の問題の公表後 私の所に送られてきた“解答”なるものの幾つかをここで紹介したいと思います。かなり前のことになるので、私めの“記憶の引出し(*1)”をフルに活用する必要がありそうです。
【注】(*1)「記憶の引出し」については別途紹介します。
例1:超短時間で解けた!?
 問題自体は一見易しく見えるので「5分で解けた」と誤解する人が多いのですが「2分も掛からなかった(!)」という超短時間で解けたという報告が届きました。ただ、届いたのはメールの文章で以下の2行だけで証明そのものはありませんでした。

 今、わたしは、高3なんですが、解くのに、2分もかかりませんでした。
きっと、中学の定期テストにも、あんな簡単な問題は出てこなかったと思います。

 以下は、それに対する私の返信です。

拝復
 メールありがとうございました。
 例の幾何の問題のことですね。2分も掛からずに簡単に解けたとは、たいし たものです。

 ただ、ちょつと心配なのは「中学の定期テストにも、あんな簡単な問題は出てこなかった」とのことですが、この問題を解いて、難しかったと実感しなかったとすれば、それはこの問題の本質的な部分にまだ触れていない可能性の方が強いです。誰でも2分で解けたと早とちりする問題なのです。

追記:メールを出すときは、自分の名前を記してほしいものですね。

木下

 その後、20数年が経過しましたが未だ何の音沙汰もありません(*2)。多分勘違いだったのでしょう。
【注】(*2)この解答者は、Webメールを使っていたので今では連絡が取れません。
 それにしても高校3年生(当時の)が挑戦してくれたのは嬉しいことでした。解答なるものを見せてもらえなかったのは残念ですが。
 もっとも「5分で解けた」という類いの報告では、その後解答が送られてきた事例はありません。音信不通になるのはいつものことなのです。多分、解けたと勘違いし証明を書くことすらしなかったのでしょう。

 テストに限らず問題が解けたと思ったら先ず証明を書いてみることです。その間に自分の勘違いに気付いたかもしれません。そして最後に日時と自分の名前を記しておくことが大切です。これでは、テストの問題が解けたのに、白紙のまま名前も書かずに答案用紙を提出するようなものです。

 聞くところによると、高名な数学者のもとには「未解決の難問を証明した」と称する郵便物がよく届くそうです。そういうとき、受け取った先生は内心後ろめたさを感じながらも、そのままそっくりゴミ箱に捨てるのだそうです。もしかすると、それまで誰も思い付かなかったような方法で正しく解かれていたかもしれませんが、その可能性はほぼゼロに近いでしょうから読むのは時間の無駄なのです。妥当な判断だと思います。

 しかしこの問題はそんな未解決の難問ではありません。私も偉い学者ではありませんから、送られてきた解答はすべて目を通すことにしています。そして解答を読んでから感想を述べたかったのですが、残念なことでありました。

例2.差出人は?
 次の例は、普通郵便の封書で送られてきたものです。現在では、その文書そのものは手元に見当たらないので記憶だけを頼りに書くことにします。

 手紙はフルスカップ(*3)に手書きされたものでした。学生ではなく私と同年配の人のように思われました。
【注】(*3)フルスカップとはレポート用紙のように1枚ずつ切り離せる用紙で5ミリほどの間隔で横罫線が施されているものです。罫線はコピーすると見えなくなるので便利です。用紙は薄くて書きやすいので大学時代のレポートはこれに書いて提出することが多かったと記憶しています。
 証明には一部不明確な所があり(私には少し論理の飛躍があるように思えた)、数回のやり取りで手直しが行われ最終的に正解ということになりました。

 この間、私はフルスカップに手書きされた文面を眺めながらこの解答者はどういう方なのかと考えていました。フルスカップは大学ごとに作られていることが多いので大学名が印刷されていたり、大学のマークの透かしが入っていたりします。仔細に観察するうちに私は大学名を判別できてしまったのです。どうやら解答者は大学の関係者のようでした。多分、大学の先生かもしれません。そう思うと私は急に心配になってきました。今まで何度か手紙のやり取りをしてきたので失礼が無かったか、保存してあった手紙のコピーを読み返すことになりました。

 幸い、普段から社内の電子メール環境のもとで文章作成では鍛えられていましたからミスはなかったようです。社内の掲示板上で交流のある方々は、お互いに地位も年齢も顔さえも知らない場合が多いのです。普段からどんな人とでも同じ文体で礼儀正しい言葉遣いで文章を書くようにしていましたから、相手が企業人だろうと先生であろうと、あるいは学生や子供だろうと常に同じ調子で書いてきました。特に問題となりそうな表現はなかったのでホッとしました。

 ただ、最初に名前を見たときからどこかで見た名前だなとは思っていました。どこかでお会いしている人かもしれません。大学名が分かった時点で「もしや‥‥」と思っていたのですが、私は1年程前に求人のためこの大学を訪問していたのです。そのときの記録を確認すると、間違いなく当時お会いした就職担当だった教授の名前であることが分かりました。

 早速、私は気がつかなかった失礼を詫びる手紙を先生に書いたのですが、先生の方は先刻承知の上で何も触れずに問題の解答を寄せられたのだと思っていました。しかし先生からの返信によると、先生自身も気が付かずに手紙を書いていたことが明らかとなりました。珍しい経験をしたものです。

例3.敗北宣言
 東芝社内の方からは敗北宣言のメールが届きました。それを受けて、私が掲示板に載せた報告が以下のものです。

登録者 (TSE)木下 恂 990092050039   登録日時 94-02-09 16:50
表題  例の幾何の問題に挑戦している方々へ

 以下のような奮戦記が寄せられました。言い出しっぺとしてはいささかの責任を感じております。現在、正解された方は2名(私を除いて)で、解法は4種類になりました。正解した方にのみこの解法を公開していますが、どうしても解法を知りたいという方はご連絡下さい(余り多いと対応できませんが)。

以下、投稿者の承諾を得て。
*************************
こんな簡単な難問は初めてです。毎日思い出すたび通勤電車の
なかで、考えてもわからず、ついに昨夜11時ころからTVを
見ながら結局3時間考えても、正解に至りませんでした。
  (三角形ABC で BD,CE が角の2等分線)
1.ABD と ACE が合同の証明ができればOK.
2.BD と CE の交点を F(内接円の中心)
   とし、Fを通る直線と、直線AB,ACから成る三角形で
  F上の辺の長さが同じものは二つ以上存在しないことを証明する。
***
とここまでは良かったのですが、これ以降アイデアがでず、
2の証明として、AF も角Aの2等分線であることから代数的に
証明できそうだ、という結論であきらめました。
非常に残念です。
 途中であまりの腹立たしさに、反例を見つけようと電卓で座標計算
したら、(角Bを90度として)どうもなさそう・・・
気をとりなおして上記の結果までやっとたどりつきました。

間違った回答例になるでしょうか。 -以上-
*************************

例4.公開しないで!
 読者からは「絶対に自分で解きたいから公開はしないで欲しい」と言われているとこれまで公言してきましたが、現在ではそれをどこで読んだかは思い出せません。「本当かよ?」と疑われないよう証拠を示しておいた方が良いと考えました。

 そこで試しに、メーラー上で「公開しないで」をキーにして検索したところ、以下のものが引っ掛かりました。私信なので一部だけ切り取って紹介します。全面紹介するには、本人の了解を得る必要がありますが、現在は連絡が取れない状態なのです。心当たりの方は連絡を頂けると有難いのですが。

Date: 11 Dec 1995 14:08
************(個人情報略)*************
 また、メールで失礼いたします。
 相変わらず三角形解けません。 (^^;;
(本を購入して、2ー3日電車の中で考えただけですが)

ソフトウェアの法則
 先月だったか、紀伊国屋 新宿
で購入しました。 15冊程横積になっていました。 VOX には良く目を
通していたのですが、半分くらいしか記憶になく、楽しく拝見し、
現在は、職場の後輩に貸してあります。

数十年後の或る日、この書籍を手にとったら、きっと一番良き時代として
当時のことを思い出すことになるでしょう。
(その時まで、絶対3角形の解答は公開しないで下さい。)

************( 以下略 )*************

 私の他の投稿に対するコメントをメールで頂いたのですが、「私信:伏せ字 と 雑談」というタイトルで、その中に書かれていたものでした。日付は「Date: 11 Dec 1995 14:08」となっていました。

 周知の通り、既に正解集は公開されています。期待に応えることができず申し訳なく思っております。


2021年2月17日水曜日

トランプ・ニュース?


・Knuhsの書斎 から転載

── えせ情報を流す人の呼称


 4年前(2017年2月16日)、トランプ大統領が誕生した時に書いたものだが、ホームページ上には載せなかったことに気が付いた。遅ればせながら(一部手直しをして)掲載することにしました。

=========================
トランプ・ニュース?

 世の中ではウソのニュースが流布されている。しかし人々は決してウソ( lie, lying )という言葉を使わないようにしているらしい。

 post truth(ポスト真実)、alternative facts(代替可能な事実)、fake news(フェイクニュース)などという変な表現が使われている。どうもしっくりとこない。私は、はっきりと「嘘つき大統領」とか「ウソ・ニュース」とか「うそつき総理」とか叫びたいのだが、そう言うと良識が欠けているとみなされるのだろうか。

 そこで私は英和辞典で調べてみた。trump には「捏造」という意味があることを知った。なるほど、よくできた話だ。トランペット(trumpet)を吹く、という言葉は「ほらを吹く」という意味もある。「トランプター」という用語はここから派生した言葉のようである。なるほど、そうなのか。

 偉い人のちょうちん持ち発言をする人のことを、trumpeter(発音は トランペタ に近い)という。あの報道官は典型的なトランペタなんですね。

 これからは、えせ情報を流したり、それを吹聴する人のことを「トランプ・ニュース」、とか「トランプ大統領」、「トランプ総理」などと呼んだらどうでしょうか。

 前大統領となった今、トランプ氏に向かって「トランプ大統領!」と呼び掛けたら、彼、大喜びすると思いますよ。


  



2021年1月16日土曜日

今だから話そう「幾何の問題 正解集の公開」




── 幾何の問題・正解集の公開

はじめに
 以前、拙著『ソフトウェアの法則』(中公新書1270)で、ある幾何の問題を取上げたことがありました。高校時代に授業で出された難問で「5分で解けた」と誤解する人が多いのですが、未だ5分で解けるような平易な証明は発見されておりません。
 その際に作られた正解集を、今回ネット上に公開することにしました。以下では、そう決意した背景を説明したいと思います。

背景説明
・ネット上への登場:(1994年)
 最初にこの幾何の問題を取上げたのは1994年の1月24日のことです。東芝社内のイントラネット上にある電子掲示板(vox)に「ソフトウェアと記憶力」というタイトルのエッセイを掲載しました。この中で私は、問題の詳細には触れぬまま唯ある難しい幾何の問題に出会ったこと、そしてその問題に関連して私の周辺で起こった出来事を中心に紹介したものでした。

 東芝の技術者の多くが利用していた掲示板だったからでしょうか、直後から「どんな問題ですか?」という問い合わせメールが多数寄せられました。ここで初めてその幾何の問題の詳細が公になった訳です。その後「ソフトウェアと記憶力」が掲載されている『ソフトウェアの法則』という本が発売(1995年)され、一般にも知られることになりました。

 後にエッセイの方は、掲示板からイントラネット上の個人ホームページ上に掲載され、更にインターネット上の個人ホームページ創設を機会に、関連する情報が同様に転載されるようになりました。これ以後、関連情報を書籍で知った読者から、あるいはインターネットで知った利用者から「問題の解答」なるものが寄せられるようになったのです。

 今までに証明に成功したのは(出題者の私を含めて)6人ですが、複数の解を提出した人もいるので全部で9つの解法が存在しています。この間、正解者にはこれまでに判明したすべての解法を含む正解集を配布してきました。しかし時が流れるに連れて、その正解集の文書ファイルの保存と継承が(特に図を含んでいるため)難しくなってきました。

・1回目の変更:(1997年)
 そこで正解集をウェッブ上に保存することにしました。しかしまだ正解に到達していない方々からは「絶対に正解の証明を公開しないでほしい」という要望が出されていました。あくまでも自分で解きたいということなのでしょう。そこで正解者のみがアクセスできる形にして公開することにしました。“秘密の”正解集への入口は私のホームページの【超極秘欄】を開くと、下から13番目の項目[幾何の問題・正解集]からアクセスすることができます。その中の【正解集へ】から先は(正解者のみが保持する)パスワードが必要になります。

置き場所の変更
・2回目の変更:(2021年)
 こうして20数年が経過しました。私めは、そろそろ自分のホームページの終活に取り組まねばならない年齢に達したのです。このまま放置しておくと正解者(今では連絡の取れない方、故人となられた方もおります)以外には誰も“正解”を知らないという状態になるのは明らかでしょう。そのうちに、果して正解だったのか? と疑問を持つ人も現れることでしょう。そして何より困るのは、私が管理できなくなるとホームページの使用権がなくなって、プロバイダーによる強制削除でホームページそのものが消滅してしまうことになります。

 そこで、次の策を講じることにしました。
 (1)誰もがアクセスできる場所に正解集を置く。
 (2)従来の“秘密の”正解集はそのままとする。
 (3)これまでの経緯を記録として残す。


 ここで、
 (1)はホームページ(*1)上とブログ(*2)上に置きます。
 (2)はホームページ上に残します。
 (3)は、今書いているこの文書そのものですが、出来上がり次第ホームページ上とブログ上に保存します。ホームページの消滅時には(2)は失われますが、(1),(3)はブログに残されることになります。
【注】(*1)ここで、ホームページとは、
    【Knuhsの書斎】
     http://www.hi-ho.ne.jp/skinoshita/

   (*2)ブログとは、
    【(付録)゙:ドッと混む・Knuhsの書斎】
     http://knuhs-dot-com.blogspot.com/
    【(付録)゙Knuhsの書斎】(ミラー)
     http://knuhs.blogspot.com/
のことです。
ソフトウェアと記憶力
 ところで「ソフトウェアと記憶力」をここで読んでもらいたいのですが、残念ながらは『ソフトウェアの法則』の出版に合わせてホームページ上からは削除されました。原文のテキストが存在しないので書籍の該当ページを写真に撮り、それをこの欄に表示する積りでいました。しかし実際にやってみると、文章が縦書きになるのでパソコンの画面では読み難いことが分かりました。


『ソフトウェアの法則』から
「ソフトウェアと記憶力」

 書籍を見ながら再度パソコンに入力するのは何んとも馬鹿らしいので、いろいろ悩んだ末に昔電子掲示板に投稿したときのメールを利用すればよいことに気が付きました。当時の掲示板上での議論、あるいは個人のメール交換でいろいろと議論したことはすべてメール形式でそのまま保存されているのです。それを以下に掲載することにしました。初稿原稿(原文)ですから書籍として出版されるまでに手直しされた部分があり、それらは完全には反映されていませんから、多分どこかに相違はあると思います。

【以下は、昔の投稿ファイルから復元したもの】
From: (TSE)木下 恂 990092050039
Date: 24 Jan 1994 17:57
Subject: 『ソフトウェアと記憶力』

『ソフトウェアと記憶力』

 学生時代、私の好きな学科といえば数学であった。特に、記憶力よりも推理力を必要とするところが性に合っていたように思う。古文とか歴史など最初に多くのことを暗記しなければならない学科は大嫌いで、「以後パッパ(1588)と刀狩り」などとこじつけて歴史の年代を覚えることにどれ程の意味があるのか、などと勝手なことを言っていたものである。暗記するのが苦手だった訳ではなく、要するに関心のあることしかやらないという、単なる物ぐさだっただけなのであるが。好きな分野にのみ熱中するという偏った勉強法の欠陥に気付いたのは、ずっと後のことである。今でも仕事に関連した専門分野以外のことには比較的無関心で、読む本の分野も偏っていると家内からはよく注意される。最近は、努めて専門以外の分野にも首を突っ込むようにしているが、そうやって得た知識が専門の分野でも役立つことが意外に多いことを知った(もはや手遅れの感があるが)。

 高等学校時代は、数学の中でも特に幾何学が好きだった。誰も思い付かない場所に補助線を引くことによって、難しい問題がスパッと解けたときのあの爽快感は決して忘れることがない。受験戦争真っただ中の灰色の高校生活で、唯一思い出す痛快な思い出は幾何の難問を自分一人だけが解いたときのことである。幾何の先生が出してくれたその問題は、一見単純で簡単に解けそうに見えたが予想外に難問であった。聞くところによると、その先生が学生の頃同じように出題され誰も解けなかったが、ある優秀な学生が病死した後で、彼の机の引きだしの中から正解を書いたメモが出てきたのだそうである。そういうことがあったので先生にとっても印象深い問題だったのであろう。この話を聞いて皆で勇んで挑戦したものである。結局、正解となったのは自分のものだけだったように記憶している。

 最近、古い資料を整理していたとき高校時代の友人からの葉書が出てきた。東大の法科へストレートで入った秀才K氏からの手紙で、浪人中の私への激励と例の幾何の問題の解答を教えて欲しいという依頼が書かれている。K氏の友人が家庭教師をしていてこの問題を聞かれ、答えられずに困っているからとのことであった。同時にその友人からの礼状も残されており「家庭教師として若干の威厳は保持せねばならず、かといって嘘をつくわけにもいかず、全くの苦境でありました。お陰で大変助かりました」とユーモラスに書かれているところから、正解を教えてあげたもののようである(すっかり忘れてしまっているが)。この自慢話の締まらないところは、今ではこの問題を自分では解けないということである。どこに補助線を引いたかも正確に覚えているのに、どう頑張っても正解に到達できない。今や記憶力だけでなく、推理力も衰えてきた証拠であろう。

 暗記が苦手ではないことを自分で証明するために、円周率(π:パイ)の値を丸暗記したのも高校時代のことである(これは誰でもよくやることらしい)。それも、何かにこじつけて覚えるというようなせこい方法は使わずに、小数点以下の数字をそのまま丸ごと覚えるのである。小数点以下100桁(*)までなら今でも数字を諳じることができる。若い頃に覚えたことはなかなか忘れないものである(しかし最近は 80 桁目以降が少しあやしくなってきている)。

 (*)  3.1415926535 8979323846 2643383279 5028841971
     6939937510 5820974944 5923078164 0628620899
     8628034825 3421170679

 円周率の値をそんなに覚えても何の得にもならないが、全く役に立たないという訳でもない。学校を卒業しコンピュータのソフトウェア開発という仕事につくようになると、結構円周率の値に出くわすことが多くなった。コンピュータを大学に購入してもらうため、大学の先生に立ち会ってもらってコンピュータ(と関連するソフトウェア)の性能を調べるためのベンチマークテストを行うことがよくあった。ベンチマークテストというと、直ぐ私のようなコンパイラ屋が駆り出されたものである。テストに使うプログラムは先生が日頃研究で使っているFORTRAN言語で書かれたプログラムであることが多く、テスト当日に突然提示されるのが普通であった。当時のFORTRANは異機種間でのプログラム互換性に問題があり、利用者の側も互換性についての認識に欠けている時代であった。したがって、プログラムに何の手直しも加えないで、異なる機種の上で同じ結果が得られるというようなことは滅多になかったといってもよい。与えられた1~2時間の内に、先生が期待する(正しい?)結果が得られるようにするのが、こちらの役目である。はっきり言って、かなり酷いプログラムが多かったのを覚えている。そういうプログラムを解読して問題箇所を見付けるという経験を積み重ねたことが、後年プログラムを美しく書くことの重要性を意識するようになった出発点ではないかと思う。感謝すべきであろう。

 先生の方は、従来機種での結果が正しいと信じているので我々のコンピュータでの出力結果が異なれば、それは即こちらのソフトウェアが間違っていると主張することになる。それに対して反論するには、プログラムの問題の箇所を見付けて指摘し、それが原因であることを納得させなければならない。更に(これが一番難しいのだが)それを修正することを了解してもらわなければならない。先生の方は日頃の研究成果である自慢のプログラムに難癖を付けられるのだからそれを喜ぶ訳がない。かなり難儀な仕事であった。

 プログラムの互換性上から望ましくない記述、たとえば特定の機種でしか通用しないような記述を見付けても、それを誤っていると認めないのは勿論のこと修正することすら認めてくれないのである。当然プログラム言語の仕様とその解釈についての議論をしなければならなくなる。かなり理屈っぽい男だと思われたものである。しかし、こちらとしてはそれしか方法がなかったのである。

 FORTRANによる技術計算プログラムであるから、そういうプログラムには必ずといってよい程円周率の値が登場する。面白いもので円周率に関心のない先生のプログラムでは、円周率の値は高々10桁くらいしか書かれていない。3.14 だけというのもある。しかし、20桁近く書き連ねている先生も中にはいる。FORTRANの倍精度機能を使うとしても、高々16~7桁で十分なのだから全く無意味な記述である(しかも、それを単精度で使っている)。こういう先生は間違いなく円周率に強い関心をもっている先生である。ある国立大学の教授のプログラムを調べていたとき、たまたまこの長い円周率の記述にぶつかった。しかも10桁目付近で間違っているではないか。有効桁数から考えて、プログラムの実行結果に影響するものではないから放っておいてもよかったのである。思わしい結果が得られない本当の原因は、他のところにあるに決まっている。しかし、若気の至りで、ついそれを指摘してしまった。「いや、そんなことはありません。この値で正しいです」と教授は毅然と言い、当然不機嫌になる。言わなければよかったと後悔しながら「そうですか」と引き下がった。しかしその後で気が付くと、教授は少し離れた所に置いてある自分の鞄の中から資料を色々と取り出し、何かを調べている様子。暫くするとまたやってきて「やはり私の間違いでした」ということになった。当然のことながらこの後は非常に協力的になり、プログラムの修正の方もうまくいったのである。

 少し脱線するが、ベンチマークというと私は某金融機関を相手にしたときの出来事を直ぐに思い出す(もう何年も誰かに話したいのをじっと我慢してきたのだが、もはや時効になった頃であろう)。私が直接タッチしたケースではなかったが、例によってベンチマークテストで使われたCOBOLプログラムで期待した結果が得られないことがあった。

 色々調べていった結果、金融機関側が期待する某IBM社のマシンでの計算結果との違いは、ある特定の式の評価以降で起こるというところまで追い詰めることに成功した。その式の値を手計算で求めてみると当社のCOBOLの計算結果の方が正しいのである。詳細はどのような具合になっていたかもはや忘れてしまったが、多分ライブラリプログラムの返す値の丸めの差ではなかったかと思う。結局、某社のCOBOLの結果の方がおかしいということが明らかとなったのである。それを金融機関側も納得した。

 しかし問題はそれで解決した訳ではなかった。従来からその間違った値で金融機関の方はお客にローン等の支払いをさせていた関係上、コンピュータを入れ替えたからといって急にその支払額が変更されるようなことがあっては困るというのである。そこで、やむをえずCOBOLプログラムに手を入れてその間違った値をわざわざ出すように式を手直ししたのである。ほんの些細な額ではあるが、金融機関にとっては信用が掛かっている重大な問題だった訳である(やはり、ここだけの話にしておいた方がよさそうである)。それにしても、こういう下らないことだけはよく覚えているものである。大切なことは直ぐ忘れてしまうのに‥‥。何故なのだろう。

 円周率の値といえば、技術計算のプログラムでしか使わないと思われ勝ちであるが、結構色々なところで利用されている。たとえば、これをパスワードとして用いる人が多い。コンピュータシステムで使われるパスワードは忘れると大変なことになるが、そうかと言って手帳などにメモしておく訳にもいかないので、取り扱いには結構神経を使うものである。

 その結果、絶対に忘れないような身近なものからパスワードを選び勝ちになる。たとえば自分の誕生日の日付をパスワードの数字に選ぶ人が多いが、これをやると身分証明書とキャッシュカードを一緒に落としたときなど簡単に見破られてしまう。そこで理数系の人はπやeの値を用いたりする。理論物理学者のファインマン教授は暗号破りの名手だったそうであるが、特別な技能があった訳ではなく、円周率などの特別な数字をパスワードに使う人が多いことを知っていて(もちろん学者仲間が対象であるから)、後は根気と推理だけで対応したもののようである。

 最近気が付いたことであるが、電子手帳などで使えるパスワードは20桁以上の長い数字を受け付けるものが多い。こういう場合はパスワードとして円周率の値をおおっぴらに利用するとよい。パスワードが円周率の値だと他人に分かってしまっても、普通は全部正確に入力できないからである。更に適当な桁を一字だけ変えておけばなお安全である。

 ところで、苦手ではないと称していた私の記憶力も年とともに衰えてきて、新たな情報を記憶するのに次第に困難を感じるようになってきた。そこで、情報を効率よく記憶するためには、コンピュータの記憶装置になぞらえた方法で覚えるのがいいのではないかと最近思うようになり、それを実践している。

 たとえば、コンピュータ関係の新しい技術を勉強しようと本を買っても、忙しくて読めなかったり、途中で興味を失ったりで最後まで読了しないことが多い。そういう場合、そのまま本をしまい込まずに全体をパラパラと見たり、目次だけでもよく見ておいて、どういうテーマが書いてあるかを記憶しておくのである。そして、何かの折りにその知識が必要になった場合、あの本に書いてあったはずと直ぐ思い出せるようにする。そして必要になった時点で精読するのである。

 したがって私は、雑誌類は図書の本を利用するが、それ以外の書物は努めて自分の本として購入し、自分の「ライブラリ」という名の補助記憶装置を充実させるように努力している。

 つまり主記憶装置(主メモリ)の容量に制約があり、新たな情報を直接貯える余地がない場合には補助記憶装置に入れておくのである。そして補助記憶装置のどこに記憶したかの情報だけを主メモリに置いておく。無理に主メモリに記憶しようとしても揮発性メモリなのか直ぐ忘れてしまうからである。そして、どうでもよい(無益な)情報は努めて捨てることにし、必要な情報でも敢えて無理に主メモリ上には記憶しないようにする。補助記憶装置のどこを読めば分かるかを知ってさえいればよいのだから楽である。自分の外部記憶装置であるライブラリを充実させておいて、必要に応じて主メモリ上に呼び出す「仮想記憶方式」にして主メモリの容量不足に対応するのである。

 歳をとってから主メモリのサイズを拡張しようとしても、それは殆ど不可能に近い。大容量の主メモリの持ち主になりたければ、若い時にそれなりの対応をしておかなければ無理であろう。若いときによく勉強して主メモリを拡げて記憶容量を大きくし、内容を充実させておくべきなのである。私のように怠け者で偏った勉強をしていると、決して広くはならないものである。年を取ってからできることといえば、それは精々補助記憶装置の充実を計ることしかないのではないか。

 しかし、主メモリにはもう新たな情報を記憶する余地がないかというと、必ずしもそうではない。たとえば円周率に関係するニュースなどは直ぐ覚えてしまうから不思議である。現在、円周率の値は小数点以下32億2千百22万桁まで求まっていて10億桁目の数字は“9”であるとか、国際的にどことどこが競っているとか、どのような手法で値を求めているかなどの情報はたちまち覚えてしまう。

 何故なのか。どうやら主メモリの中にある、若いときに張り巡らした記憶の網に、たまたま引っ掛かった情報は忘れ去られることなく記憶されるもののようである。しかし引っ掛かるべき記憶の網が何も張り巡らされていない分野では、覚えるのに大変な苦労をする。新たな網を張るのに多大な労力を要するからであろう。将来どんな分野の記憶の網が必要になるか分からない以上、我々は若いときに選り好みをせずに広く色々な分野の勉強をしておくべきなのであろう。私の場合、気が付くのが遅すぎたが。

 若い時に、主メモリ上をどうでもよいガラクタ情報で満たしていると、この将来必要となる記憶の網が張り巡らされないままになってしまうのではないかと思う。たとえば、昔はコンピュータゲームなどを見ると、知的好奇心を刺激され同じようなものを自分で作ってみたものである。そしてその過程で色々なことを学び、経験し、結果として何らかの有益な記憶の網が張り巡らされたはずである(と信じている)。しかし最近の若者達は(などと言うと、年寄りが若者の行動を批判する典型的な構図になってしまうが)ゲームのきらびやかな外見に圧倒され、同じようなものを自分で作りたいという意欲が湧く前に先ずそれで遊んでみたくなる。そして結局は遊ぶ方に没入してしまう傾向が強い。あたら、有益な記憶の網を張るチャンスを逸しているように思えてならない。

 コンピュータゲームの遊び方の網ばかり張り巡らされた記憶装置には、将来どんな情報が引っ掛かるのであろうか? そこで、思い付いた法則をいくつか。

【新人プログラマの記憶力の法則】
 『いつか助けてくれるかもしれないと期待して困っている新人プログラマを助けてあげると、ありがたいもので次に困ったときも必ず自分を思い出してくれる』

【貸し借りに関する記憶力の差の法則】
 『お金を貸したことは忘れないが、借りたことは直ぐ忘れてしまう』

【貸し借りに関する記憶力の差の法則に基づく問題提起】
 『徹夜でデバッグしたあの日、自販機の前で貸した私のお金は一体どうなったんでしょうね』

【参照終り】

【以下は、書籍に書き加えたもの】
<追記>

 ここでふれた幾何の問題について、「どんな問題か教えてくれませんか」という問い合わせが電子メールを通じて寄せられた。その問題とは、次のようなものである。

三角形ABCにおいて、∠Bと∠Cの二等分線が辺AC、辺ABと交わる点をそれぞれD、Eとするとき、BD=CEであるという。このとき、三角形ABCは二等辺三角形であることを証明せよ(つまり∠B=∠Cを証明せよ)

 私はこういう状況になるのを、実は一番に恐れていたのである。この問題を尋ねられ、問題を公開したら「なんだ、簡単じゃないか」とすぐ正解が送られてきたらどうなるか。自分の数少ない自慢話(いまやそれが怪しくなってきている)の一つが完全になくなってしまうからである。他人に教えられて「なるほど、そうやって解くのか」と感心している自分を想像するのは大変辛いことである。

 しかしその後、この問題を電子メールシステムの掲示板で公表してからほどなくしてなんとか自分で解くことに成功した。問題に挑戦した人の数は定かではないが、解けないという苦情、奮闘報告、正解を教えてくれという要請、五分で解けたという誤報(?)などが多数寄せられた。最終的に正解となったのは三人の方から寄せられた四つの解法であった(一人で二つの解を寄せられた方がいた)。出題者としての解答と合わせて五つの解が集まったことになる。いずれも異なる解法ばかりで、いろいろな解き方があるものだと感心した次第。これを見るとどれも五分程度ですぐ解けるという解法ではない。「五分で解けた」と報告をくれて以来音沙汰がない方々は多分勘違いだったのであろう。しかし「五分で解ける」未知の解がある可能性はまだ残されている。貴方(女)も挑戦してみませんか。

<追記 終り>

以上は、1994年時点の集計結果に基づいて書かれています。

なお、新たに正解と思われる解法を見つけても、私めに送りつけるのはご容赦ください。もはや解法の正否を判定できない可能性があるからです。

円周率についての最近の記録は以下のようになっています。
 1991 22億6千万桁 (コロンビア大学)
 1995 32億2,122万桁(東大 金田)
 2020 50兆桁 Timothy Mullican


正解集への入口

正解集(ホームページ)
seikaishuu3.htm

正解集(ブログ)   
blog-post.html




2021年1月15日金曜日

今だから話そう「幾何の問題・正解集」





《幾何の問題正解集》
[提示問題とは]
三角形ABCにおいて、∠Bと∠Cの二等分線が辺AC、辺ABと交わる点をそれぞれD、Eとするとき、BD=CEであるという。このとき、三角形ABCは二等辺三角形であることを証明せよ


証明(クリックする)
解答者
解答日時
「三好解」  三好 彰氏 1994-01-31 08:09
「船津解1」  船津 剛男氏 1994-01-31 13:30
「船津解2」  船津 剛男氏 1994-02-02 09:15
「井上解」  井上 徹夫氏 1994-02-14 19:28
「北條解」  北條 尚志氏 1995-01-11(by郵便)
「大野解1」  大野 典昭氏 2002-4-13 7:21
「大野解2」  大野 典昭氏 2002-10-20 10:54
「大野解3」  大野 典昭氏 2002-10-26 11:56
「出題者解」  木下 恂 1994-01-27 14:19











































[三好解]
△ABCの∠Bの二等分線と辺ACとの交点をD、∠Cの二等分線と辺ABとの交点をEとする。BD=CEが与件。
△ACEの外接円と、△ABDの外接円の交点をFとする。円周角∠Aに対応する辺CEと辺BDが等長(与件)なので、二つの円は同じ大きさ。
FDが円ACEと交わる点をGとする。またFEが円ABDと交わる点をHとする。1つの円弧に対応する角度は同じなので、次のようになる。
∠AFG=∠AFD=∠ABD=1/2 ∠B     (1)
∠AFH=∠AFE=∠ACE=1/2 ∠C     (2)


四角形AEFGは円ACEに内接するので、∠GAE+∠EFG=180゚となり、
∠GAD=180゚-∠A-∠AFE-∠AFG=180゚-∠A-1/2(∠B+∠C)
一方、180゚=∠A+∠B+∠Cなので、
∠GAD=1/2(∠B+∠C)

四角形ADFHは円ABDに内接するから、∠HAD+∠DFH=180゚となり、
∠HAE=180゚-∠A-∠AFH-∠AFD=180゚-∠A-1/2(∠B+∠C)
=1/2(∠B+∠C)
よって ∠HAE=∠GAD
ゆえに、∠A+∠HAE+∠GAD=∠A+∠B+∠C=180゚となり、
点G,A,Hは一直線上にある。

円ACEと円ABDが同じ大きさであるので、辺AFに対応する円周角は等しくなり、
∠G=∠H
ゆえに△FGHは二等辺三角形である、つまりFH=FG
辺FHと辺FGに対応する円周角は等しいので、
∠HAF=∠GAF=90゚となる。
よって、∠AFH=∠90゚-∠H=∠90゚-∠G=∠AFG
(2)から∠AFH=1/2 ∠C、(1)から∠AFG=1/2 ∠B
なので、∠C=∠Bとなる。










































[船津解1]
1.頂点CからBDに平行線を引き、ABの延長線と交わる点をFとする。
2.頂点BからCEに平行線を引き、ACの延長戦と交わる点をGとする。


3.1.→ ∠ABD=∠BFC、∠DBC=∠BCF
  ゆえに、△BCFは2等辺三角形であり、BC=BF
4.同様に、△BCGは2等辺三角形であり、BC=CG
5.上記→ BD:CF=AB:AB+BC→BD=CF/(1+BC/AB)
6.同様に、CE:BG=AC:AC+BC→CE=BG/(1+BC/AC)
7.∠ABC<∠ACBであると仮定すると、
  △BCDと△BCEに於て、∠ABC<∠ACBであるから、AB>AC
  △BCFと△BCGに於て、∠CBF>∠BCGであるから、CF>BG
8.従って、
  BD=CF/(1+BC/AB)>BG/(1+BC/AB)
    >BG/(1+BC/AC)=CE すなわち、BD>CE
9.同様に、∠ABC>∠ACB であると仮定すると、BD<CE
  また、 ∠ABC=∠ACB であると仮定すると、BD=CE

従って、BD=CEならば、∠ABC=∠ACBとなり、△ABCは2等辺3角形










































[船津解2]
 以下、記述を簡単にするために、記号を用いる。

 頂点A、B、Cの各対辺の長さを、a、b、cと表す。
 頂点B、C、の各角度を、2α、2βと表す。
 角B、Cの2等分線の長さを、x、yと表す。


 問題は、「x=yであれば、α=βである」を証明することである。

証明:
0.α≧(1/2)πの場合は、明らかにy>a>xである。
  よって、α<(1/2)πの場合について証明できればよい。
1.△ABCの面積=底辺の長さx高さ=(1/2)acSin2α
2.△ABCの面積=△ABDの面積+△CBDの面積
          =(1/2)(cxSinα+axSinα)
3.Sin2α=2SinαCosα
4.1、2、3より、x=2Cosα/(1/a+1/c)
5.同様にして、 y=2Cosβ/(1/a+1/b)
6.もし、α>βならば、Cosα<Cosβ、b>cであるから、
  x=2Cosα/(1/a+1/c)
   <2Cosβ/(1/a+1/c)
   <2Cosβ/(1/a+1/b)
   =y
  すなわち、 α>βならば、x<y
7.同様にして、α<βならば、x>y
8.明らかに、 α=βならば、x=y
9.従って、  x=yならば、α=β であり、△ABCは2等辺3角形

 証明終わり










































[井上解]
 三角形ABCでBD,CE(角の2等分線)を長さm、BEの長さをb、CDの長さをa、底辺の長さc、DEの長さをd、角ABC、ACBの二等分角の大きさをそれぞれα、βとすると、

  a2=m2+c2-2cmcosα ‥‥‥(1)
  b2=m2+c2-2cmcosβ ‥‥‥(2)
  d2=m2+b2-2bmcosα ‥‥‥(3)
  d2=m2+a2-2amcosβ ‥‥‥(4)

(1),(2)より、
  cosα=(m2+c2-a2)/(2cm) ‥‥‥(5)
  cosβ=(m2+c2-b2)/(2cm) ‥‥‥(6)

(5),(6)を(3),(4)に代入して、
  d2=m2+b2-2bm(m2+c2-a2)/(2cm) ‥‥‥(7)
  d2=m2+a2-2am(m2+c2-b2)/(2cm) ‥‥‥(8)

(7),(8)から
  b2-b/c(m2+c2-a2)=a2-a/c(m2+c2-b2)

これを変形すると、
  (a-b){c2-(a+b)c+(m2+ab)}=0 ‥‥‥(9)

従って、a=b ‥‥‥(10)
または、c2-(a+b)c+(m2+ab)=0 ‥‥‥(11)
ということになりますが(11)の判別式は

  D=(a+b)2-4(m2+ab) =(a-b+2m)(a-b-2m) ‥‥‥(12)

ここで、3角形の2辺の和は他の1辺より長い(a+m>c, b+m>c, c+m>a, c+m>b)
ことを利用して、

  a-b+2m=(a+m)-b+m>c-b+m=(c+m)-b>0 ‥‥‥(13)
  a-b-2m=a-m-(b+m) 即ち、D<0で、(9)が成り立つためには、a=b。

従って、3辺の等しい3角形の合同からα=βが導かれ、元の3角形が二等辺3角形であることが証明できます。










































[北條解]
BD=CEならば、∠B=∠Cを証明する。


【証明】
BD,CEの交点をFとする。
 α=1/2∠A
 β=1/2∠B
 γ=1/2∠C
 Fからの垂線の長さをr
とすれば

 BF=r・sec(α+γ)
 FD=r・sec(α-γ)
∴BD=r・{sec(α+γ)+sec(α-γ)} ‥‥(1)

 CF=r・sec(α+β)
 FE=r・sec(α-β)
∴CE=r・{sec(α+β)+sec(α-β)} ‥‥(2)

(1),(2)から
∴BD=CEならば、γ=β

∴∠B=∠C
【証明終】










































[大野解1]

①BD/sin(2γ)=a/sin(β+2γ)
 CE/sin(2β)=a/sin(2β+γ)

②sin(2γ)/sin(2β)
 =sin(β+2γ)/sin(2β+γ)
 = (sinβcos2γ+cosβsin2γ)
  /(sin2βcosγ+cos2βsinγ)

③ sin2γsin2βcosγ+sin2γcos2βsinγ
 -sin2βsinβcos2γ-sin2βcosβsin2γ=0

④ 4sinγcosγsinβcosβcosγ
 +2sinγcosγ(cosβ2-sinβ2)sinγ
 -2sinβcosβsinβ(cosγ2-sinγ2
 -4sinβcosβcosβsinγcosγ=0

⑤ sinβ2・sinγ2(cosβ-cosγ)
 -2sinβ・cosβ・sinγ・cosγ(cosβ-cosγ)
 -cosβ2・sinγ2・cosγ
 +sinβ2・cosγ2・cosβ=0

⑥ sinβ2・sinγ2(cosβ-cosγ)
 -2sinβ・cosβ・sinγ・cosγ(cosβ-cosγ)
 -cosβ2・(1-cosγ2)・cosγ
 +(1-cosβ2)・cosγ2・cosβ=0

⑦ sinβ2・sinγ2(cosβ-cosγ)
 -2sinβ・cosβ・sinγ・cosγ(cosβ-cosγ)
 +cosβ2・cosγ2(cosβ-cosγ)
 +cosβ・cosγ(cosβ-cosγ)=0

⑧{(sinβsinγ-cosβcosγ)2+cosβcosγ}
 *(cosβ-cosγ)=0

→  coSγ=cosβ    0<β、γ<90度
   γ=β
   C=B

となります。










































[大野解2]
仮定:三角形ABCで∠Bと∠Cの二等分線、BE=CF
結論:∠B=∠C

証明:これを直接示す代わりに、対偶の ∠B≠∠C ⊃ BE≠CF を示す。

一般に三角形ABCで、次が成り立つ。
  AB≧AC ならば ∠B≦∠C (複合同順)であり、逆も成り立つ
  △ABCの内部に点Pをとると、∠BPC>∠BAC

また、円周上の点ABCDEには、次のような関係がある。

   ∠ACB=∠ADB<∠ADE

証明の道筋:∠B<∠C として、CF<BE を示す。

記号を次のように定める。
  E:∠Bの二等分線とACとの交点
  F:∠Cの二等分線とABとの交点
  I:内心(BEとCFとの交点)
  P:EP∥FC、CP∥FEなる点
  Q:3点F,E,C を通る円と線分BCとの交点
(BとCとの中間またはその延長線上にくる(CBの延長線上にはこない)*)
  β:∠B/2
  γ:∠C/2
  ε:∠FEI(=∠FEB)
  ζ:∠EFI(=∠EFC)
すると、次のような関係がある。
  CP=FE ‥‥‥①
  EP=FC ‥‥‥②
  0<β<γ<∠R ‥‥‥③
  0<β+γ<∠R ‥‥‥④
  ∠EPC=∠EFC ‥‥‥⑤

証明:εとζの大きさにより、場合を2つに分ける。
Ⅰ.ε≦ζ(∠IEF≦∠IFE)
  △IEFで、ε(=∠IEF)≦ζ(=∠IFE) であるから
    IF≦IE。
  また、△IBCで、β(=∠IBC)<γ(=∠ICB) であるから
    IC<IB。
  すなわち
    CF(=IF+IC)<BE(=IE+IB)。
 これは求めるものである。

Ⅱ.ε>ζ(∠IEF>∠IFE) ‥‥‥⑥
(証明の道筋:△EBPで∠EBP<∠EPBを示すことにより、EP<EBを示す。
         そのため、FE<BPを示す。)
1.(*)QがCBの延長線上にはこないことを示す。
  もしも、QがCBの延長線上であると、EBの延長線上に○FECQとの交点がある。
  この交点をXとすると、
    ∠FXE<∠FBE(=β)  (Bは△FXEの辺EX上)
    ∠FXE=∠FCE(=γ)。 (FECXは同一円上:円周角不変)
  これは、仮定③β<γ に反する。

2.△FBEでFE<FBを示す。
  QがBC上にある場合と、BCの延長線上にある場合に分けて考える。
(1)QがBC上にある場合
  次の関係がある。
    ∠EBC(=β)<∠EQC  (QはBC上)
    ∠EQC=∠EFC(=ζ)  (FECQは同一円周上)
  すなわち
    β<ζ ‥‥‥⑦
  ⑥と⑦から
    β<ζ<ε ‥‥‥⑧
  △FBEで、
    ∠FBE(=β)<∠FEB(=ε)
  であるから、
    FE<FB。 ‥‥‥⑨
  これが求めるものである。

(2)QがBCの延長線上にある場合
  次の関係がある。
    ∠EBC(=β)<∠ECQ  (QはBCの延長線上)
    ∠ECQ=∠EFQ      (FEQCは同一円周上)
    ∠EFQ<∠EFC(=ζ)  (FC<FQ)
  すなわち
    β<ζ ‥‥‥⑩
  ⑥と⑩から
    β<ζ<ε ‥‥‥⑪
  △FBEで、
    ∠FBE(=β)<∠FEB(=ε)
  であるから、
    FE<FB。 ‥‥‥⑫

3.□BFECでFE<BCを示す。
  まず、△BFCでBF<BCを示す。
    ∠BFC=2∠R-2β-γ
  であるから、④β+γ<∠R を考慮に入れて、
    γ<∠BFC。
  すなわち
    BF<BC。 ‥‥‥⑬
  ⑨と⑫、そして⑭より
    FE<BC。 ‥‥‥⑭

4.△EBPで EP<EB を示す。
△CBPにおいて、①CP=FEと ⑭FE<BCから
    CP<CB。
  すなわち
    ∠CBP<∠CPB。 ‥‥‥⑮
  △EBPにおいて
    ∠EBP=∠EBC+∠CBP
    ∠EPB=∠EPC+∠CPB
であり、⑤⑧⑪⑮から
    ∠EBP<∠EPB。 ‥‥‥⑯
  すなわち
    EP<EB。 ‥‥‥⑰
すなわち
    CF<BE。 ‥‥‥⑱
これが求めるものである
以上










































[大野解3]


仮定:三角形ABCで∠Bと∠Cの二等分線、BE=CF
結論:∠B=∠C

証明:これを直接示す代わりに、対偶の ∠B≠∠C ⊃ BE≠CF を示す。

一般に三角形ABCで、次が成り立つ。
 AB≧AC ならば ∠B≦∠C (複合同順)であり、逆も成り立つ
 △ABCの内部に点Pをとると、∠BPC>∠BAC

また、円周上の点ABCDEには、次のような関係がある。

   ∠ACB=∠ADB<∠ADE
   ∠ABC<∠ABD<∠R ならば、AC<AD

証明の道筋:∠B<∠C として、CF<BE を示す。

記号を次のように定める。
  E:∠Bの二等分線とACとの交点
  F:∠Cの二等分線とABとの交点
  I:内心(BEとCFとの交点)
  P:○FEBとBCの延長線との交点
  Q:○FECとBC(の延長線)との交点

証明:∠IEFと∠IFEの大きさにより、場合を2つに分ける。
Ⅰ.∠IEF≦∠IFE
  △IEFで、∠IEF≦∠IFE であるから
  IF≦IE。
  また、△IBCで、∠IBC<∠ICB であるから
    IC<IB。
  すなわち
    CF(=IF+IC)<BE(=IE+IB)。
 これは求めるものである。

Ⅱ.∠IEF>∠IFE
点FEBを通る円と点FECを通る円の2つの円を考える。すると、○FEBと○FECとは、点E・点F以外では交わらない。
  (もしも点Rで交わるとすると、○FEBにおいて
    ∠FBE=∠FRE、
                 ○FECにおいて
    ∠FCE=∠FRE
   となり、∠FBE<∠FCEと矛盾する。)

以下、FC<FP<EB を示す。
ここで、○FECが線分BCと交わる点C以外の点Qが、BC上にある場合を考える。

まず、FC<FPを示すため、∠FPC<∠FCPを示す。
  ∠FPC<∠FCB<∠R   (CはBP上)
  ∠FCP=2∠R-∠FCB>∠R。
すなわち、∠FPC<FCP。
△FPCで、∠FPC<FCP であるから、
  FC<FP
が示された。

次に、FP<EBを示すため、∠FBP<∠EPBを示す。
  ∠FBP=∠FBE+∠EBP
      =∠FPE+∠EBP (○FEPB上の円周角)
      <∠FPE+∠EQC ★1(QはBC上)
      =∠FPE+∠EFC ★2(○FECQ上の円周角)
      <∠FPE+∠FEB (Ⅱの仮定)
      =∠FPE+∠FPB (○FEPB上の円周角)
      =∠EPB
となり、∠FBP<∠EPBが示された。
また、∠EPBが∠Rより小さいことが次のように示される。
  ∠EPB=∠FPE+∠FPB
      <∠FPE+∠FCB
      =∠FBE+∠FCB
      <∠R。

○FEPB上で、∠FBP<∠EPB<∠R であるから、
  FP<EB
であることが示された。

すなわち、∠ABC<∠ACB であれば、FC<EB であることが示された。これが求めるものである。

なお、○FECが線分BCと交わるC以外の点QがBCの延長上であれば、上記の展開を次のように変えればよい。
    ★1  <∠FPE+∠ECQ
    ★2  =∠FPE+∠EFQ
以上










































[木下解]
 点EよりBCに平行な線を引きACとの交点をFとするとき、点Fの位置は、次のいずれかとなる。
 (1)AD上にある
 (2)Dと一致する
 (3)CD上にある

(2)の場合には、△DECと△EBDはともに二等辺三角形となるから、結果としてこの二つの三角形は(三辺が相等しくなり)合同となる。故に、∠Bと∠Cは等しいことが証明されたことになる。
 後は(1)と(3)の場合について、それぞれ矛盾することを導き、成立しないことを示せればよい。

 まず、∠B>∠C であると仮定する(逆の場合には三角形の左右を逆転させれば以下の議論がそのまま成立するので、こう仮定しても一般性は失われない)。

(1)の場合
 △ECBと△DBCにおいて、二辺の長さがそれぞれ等しく∠DBC>∠ECBであるから

  BE<DC …(a)

が成立する。
 一方、EFとBDの交点をD'とすると△EBD'と△FECはともに二等辺三角形になるので、

  BE=ED'>EF=FC>DC

となる。すなわち、

  BE>DC

である。これは、(a) と矛盾する。

(3)の場合
 点DよりBCに平行な線を引きABとの交点をGとするとき、△GBDと△FECはともに二等辺三角形で底辺の長さが等しいから、内角(たとえば∠GBDと∠FECとを比較して)の大きい方が斜辺の長さも大きくなる。したがって、

  GB=GD>EF=FC

となる。ここで、GDとEFは平行であり、三角形(△AGDと△AEF)の底辺をなしているから

  GD>EF

というのは明らかに矛盾である。
Q.E.D.