2004年1月

結城浩の日記

目次

2004年1月31日 (土) - ぢみに。

今日も、ぢみにやつてゐます。

あれこれ理屈をこねる前に机に向かい、 現在の作業の最前線に立とう。 そうすれば自然と次の一歩が前に出る。 とっとと。

というわけで、おやすみなさい。

2004年1月30日 (金) - 多忙 / PDF版の「ミルカさん」

ぢみにやつてゐます。

「ミルカさん」数式つきPDF版を公開しています。 この「ミルカさん」は読者から不思議に反響が多いです。 なぜだろう。

2004年1月29日 (木) - 多忙 / マッチ売りの少女

ぢみにやつてゐます。

先日の日記に書いた、結城の翻訳した「マッチ売りの少女」の朗読が放映されるという話題 で、担当の方から情報公開の許可を得ました。

放送されるのはBS朝日で、開始日時は未定。 番組名は「BS音(おん)ステージ」とのこと。 画面上は静止画像が放送され、音声のみ朗読が聞こえる番組です。 放送局の事情でスケジュールが変わることもあるそうです。

2004年1月28日 (水) - 多忙

ぢみにやつてゐます。

左手が痛い。

私信: ページ削除の方法は「内容を全部消して送信」です。 「れんこんのきんぴら」は私が移動しておきました。

2004年1月26日 (月) - 多次元の対話

長男「クイズ出して!地理か歴史か数学の問題。」

私「数の集合を考える。そこから数を取り出して計算をする。結果がやっぱり同じ集合の中に入っているとしよう。」

長男「ふんふん。」

私「そのとき、その数の集合は、その計算に関して「閉じている」という。」

長男「え、えええ? 何を言っているかわかんない。」

私「では、具体的にやろう。自然数って知ってる?」

長男「全部の数でしょ?」

私「へ? いや、違うよ。1以上の整数を自然数という。Natural Number.」

長男「0は入らないの?」

私「それはとてもよい質問。0を入れるときもあるけれど、通常は入れない。」

私「いま、自然数の集合から2つの数を取り出す。その2つは同じでもよい。」

長男「ふんふん。」

私「そして足し算をする。その結果はどうなる?」

長男「整数になる。」

私「整数? まあ整数だけれど、自然数+自然数は自然数になるかな?」

長男「ええと。うん。なるよ。」

私「だから、自然数は足し算に関して「閉じている」という。」

長男「ふんふん。」

私「ところで、自然数全体になるかな?」

長男「え?」

私「自然数+自然数の結果は自然数全体になりうるかな?」

長男「うーんと。いや。ならない(きっぱり)。」

私「どうして?」

長男「だって、1にはならないもん。」

私「そうだね。1がcounter example。」

長男「反例だね。」

私「そうそう。よく覚えているね。」

○ ○ ○

私「では、次に引き算を考えてみよう。自然数は引き算に関して閉じているか?」

長男「閉じて…いない!」

私「なぜかな?」

長男「え、だって1-1は0でしょ?」

私「そう。1-1は0、そして0は自然数ではない。だから自然数は引き算に関して閉じていない。」

長男「ふむ。」

私「ではね、ここで数を追加しよう。数の拡張だ。自然数に0と負の整数を加えて、整数を考える。整数は足し算に関して閉じているね。引き算に関しては閉じているかな?」

長男「今度は整数なんだね。ええと…うん、閉じている。」

私「早いな。その通り。整数は足し算と引き算に関して閉じている。お父さんは次に何を聞くと思う?」

長男「割り算かな。」

私「違う。掛け算でした。整数は掛け算に関して閉じているかな?」

長男「うん。閉じているよ。」

私「ゼロを考えてもそうかな?」

長男「え? …うん。そう。ゼロをかけるとゼロだけれど、ゼロは整数だもん。」

私「そうだね。では、次は割り算だ。整数は割り算に関して閉じているかな?」

長男「いや、閉じていないよ。ゼロで割ったら数じゃなくなる。」

私「ふむ。そうだね。では、ゼロで割るのは除外することにする。整数はゼロ以外の整数による割り算に関して閉じているかな?」

長男「閉じて…いや、閉じていない。分数があるもん。」

私「そうだね。1割る2は2分の1。整数にならない。ではここで少し整理しよう。自然数は引き算に関して閉じていなかった。だからゼロ以下の整数を含めて数を広げた。」

長男「ふん。」

私「次に、整数はゼロ以外の割り算に関して閉じていない。だからここで数を…」

長男「数を足したいんだね。」

私「その通り。どんな数を加えたら、割り算に関して閉じるようになるだろう。」

長男「分数と小数かな。」

私「うん、分数はよいね。でも小数はどうかな。」

長男「だって、無理数とか、あるんでしょ。」

私「よく知っているけれど、ちょっと先を急ぎすぎだね。うーんと、無理数ってどんなものかな。」

長男「あのね、数が無限に続くやつ。0.33333…とか。」

私「違う、違う。0.33333…は無理数じゃないよ。繰り返しがあるものは無理数ではない。」

長男「え?違うの?」

私「違う。0.33333…は1/3に等しい。繰り返しがあると分数で書ける。√2や、πなどは無理数だ。」

長男「ふうん。0.33333…は無理数じゃないんだ。」

私「そう。話を戻すと、整数に分数を加えた数の集合は「有理数」という(まあ、整数は1を分母にした分数と考えてもよいけれど)。有理数は、ゼロ以外の割り算に関して閉じている。」

長男「ふむふむ。」

私「先を少し急ぐと、方程式を解けるようにするために、さらに数を拡張して、実数や複素数を作ることができる。」

長男「自然数、整数、有理数、それに無理数を加えて…なんだっけ。」

私「実数。」

長男「実数。それから複素数だね。」

○ ○ ○

私「ところで、複素数は平面上の点に対応させることができる。」

長男「あ、そうだね。」

私「x軸を実数の軸、y軸を虚数の軸と考えればよい。」

長男「この世界は三次元なんだよね。縦横高さ。」

私「その通り…うーん、まあね。」

長男「四次元ってどう考えたらいいの?」

私「たとえば時間に対応させてみると考えやすいかも。つまりは地理に歴史を加えるようなものだ。地球上の一点は緯度と経度と高度で示せる。三つの数字で三次元。それに時間を加えてみよう。」

長男「時間を加える?」

私「そう。同じ地球上の一点でも、現在と江戸時代では時空間上は異なる点だ。時空間の中で一点を指定するには、緯度・経度・高度・時間の四つの数字がいる。これが四次元。」

長男「五次元は?」

私「具体的なこの世に関係付けなくてもいい。5個の数字で一点が指定できるようなものを頭の中で考えればいいんだよ。」

長男「うーん。でもよくわかんないよ。」

私「まあ無理やり関係付けてみようか。時空間上の一点に「明るさ」を加えてみてもよい。「色」でもよいよ。時空間の一点を決めておいて、明るさが違うという状況を考える。つまりは、まったく同じ点を指定するためにいくつ(独立な)数が必要なのか、がポイントなんだ。それが次元。」

長男「三次元は縦横高さの三つなんだね。二次元の平面だと縦横二つ。」

私「そう。でもたとえば、二次元の平面のとき、縦横でなくてもよいんだよ。たとえばある点からの距離と角度(偏角)の二個でもよい。それで平面の点すべてが指定できる。」

長男「え、ほんと? …うん、そうかな。」

私「数を変化させたときに、その空間で点がどんな形を描くかを考えるととても面白いよ。点を指定して、そこから一定の距離にある点を考える。距離を保ったまま、平面上でぐるりとまわすと円になるね。」

長男「あのね、あのね、 スクイークでいろいろやったけれど、スクリプトみたいに、点に何かを言葉で指定して、いろいろ作れたらよいね。」

私「(絶句する)」

長男「マウスじゃなく言葉で描く。パッと点を決めると、スクイークのハロみたいなのが出てきたりして。」

私「うん、うん! それはすごいよ。それはじっくり考える価値のある問題だよ。」

長男「ふふ。」

2004年1月26日 (月) - いろいろ

昨日の午前中は教会で礼拝。

お昼ごはんはラーメンと餃子。 次男は餃子がお気に入りの様子。

お昼寝の後、原稿を書く。 JAVA Developerの連載を送付。

他のお仕事もぱたぱたと。

2004年1月25日 (日) - いろいろ

〆切が〆切が。

ぢみにやつてゐます。

2004年1月25日 (日) - メールを書くということ

読者の方からメールをいただいたので(許可を得て)ご紹介します。 はげみになるフィードバックをありがとうございました。

こんにちは。

最近、新人の方に仕事を教える機会が多いのですが、 技術を教えるとともに、ネチケットも教えるようにしています。

私はIT関連の仕事に従事しており、どうしてもメールでのやりとりが多くなります。 そこで、メールでのやりとりをする前に、 結城さんの以下のページを読むように強く勧めています。

「メールを書く心がけ」

「技術系メーリングリストで質問するときのパターン・ランゲージ」

ここには、基本的だけどつい見過ごしがちな 「読む相手のことを考えてメールを書く」 ということが書かれていると思います。

それから、技術的な質問をする場合は、 答えてくれる相手は自分の時間を削って調べてくれるのだから、 こちらも出来るかぎりのことはする、というのがマナーですね。

このような有益なページをありがとうございます。

2004年1月24日 (土) - 朗読

結城の翻訳した「マッチ売りの少女」を朗読したものを ラジオ放送で流してもよいですか、 というお問い合わせを責任者の方からいただいた。

もちろん「どうぞどうぞ、大歓迎です」というメールを書き、 また、朗読する方にも結城からのお礼を伝えてほしいとお願いする。 朗読する方が、結城の翻訳を選んでくださったらしい。感謝。

2004年1月22日 (木) - インタビュー公開

2003年12月15日に受けたインタビュー記事が「オブジェクトの広場」で公開されました。 配慮に満ちたインタビューをしてくださり、 また、四方八方に飛んだ私の話をテキストにまとめ、 レイアウトしてくださった関係者のみなさんに感謝します。

2004年1月22日 (木) - 仕事

ぢみにやつてゐます。

2004年1月21日 (水) - 仕事

月末繁忙期。まじめに仕事。

冬の入試の話題で、読者から反応。 入試を春先にやられたら花粉症の人が大変、と。 それもそうですねえ…。

「最も効果的な復讐の方法」というテキストを思いついたが、時間がなくて書けない。 要点だけ書くと「その人をゆるし、その人の幸福のために祈る」というもの。 なぜ効果的かというと…というのを書く暇がないのだ。

中野さんから、 結城の暗号本に対する 感想を書きましたというご連絡をいただいたので、リンクします。 ありがとうございます。

2004年1月20日 (火) - 仕事

[WB] まじめに仕事。 とにかく手を動かすのである。

[STORY] それはさておき「ミルカさん」を公開。

2004年1月19日 (月) - PerlとRubyのどちらを学ぶほうがよいですか

質問

PerlとRubyのどちらを学ぶほうがよいですか。 どちらが結城さんのお勧めでしょうか。

回答

こんにちは。 私は、プログラミング言語は全般的に好きで、 機会があったら、RubyでもPythonでも何でも学びたいと願っています。 最近はさぼりぎみですが。

PerlとRubyのどちらを学んだほうがいいか。 これは、難しい問いですね。 PerlまたはRubyのどちらかを選ぶ、という感じではなく、 何でも首を突っ込んだ方が楽しいと思いますよ。

お勧めは、まず何でもいいから1つプログラミング言語を一通り習得する。 あとは一年(あるいは半年)に一つずつ新しいプログラミング言語を学んでみる。

そのうちに、自分の手になじむ言語が見つかるので、 それは深く深く学ぶ。という感じがよいかと思います。

大空にはたくさんの星がきらめき、 地上にはたくさんのプログラミング言語がある。 あなたのあなたの心の届く領域が、あなたの領土です。 最初から制限を設けていてはつまらないではありませんか。

# 偉そうだなあ > 自分

2004年1月19日 (月) - プラスチックリコーダー吹き比べ

これは面白い。 プラスチックリコーダーは安くて気軽に楽しめるよい楽器だと思います。

2004年1月19日 (月) - 寒い時期の受験生 / 仕事の中断 / 長男との対話

今日は冷たい雨の月曜日。 受験生の健康が守られますように。 一年で一番寒い時期に受験を行うのはナンセンスだ、というのが家内の主張である。 もしかしたら「柵がない電車のホーム」に匹敵するかもしれない。

昨晩、一つの仕事を中断することにし、 お願いしていたレビューアさんにお詫びを兼ねて連絡する。 うまく行くこともあれば、うまく行かないこともある。 できることもあれば、できないこともある。仕事である。 レビューアさんからは温かい励ましをいただいて感謝。

もしもうまく行ってばかりなら、 それはチャレンジをしていないとも言えるから、 こういう経験も大事なのだ、と自分に言い聞かせたりして。 ちなみに、もしも失敗ばかりするなら、 チャレンジしすぎということだから、 方法論を考え直したほうがよい、と私は思っている。

[WB] それはそれとして、今日も地道に書くのだ。

仕事はさておき、 長男との対話。

長男「ねえ、歴史か地理の問題出して!」

私「じゃあねえ…。歴史の『歴』は『こよみ』という文字である。ほんとかうそか?」

長男「ええと、うそ!」

私「ピンポン!」

長男「他の問題出して!」

私「それでは…。歴史と地理の違いは何か?」

長男「何だろう…わからない…」

私「歴史は時間的な広がりを考える学問。地理は空間的な広がりを考える学問。時間と空間の違いだね」

長男「ふうん」

私「時間と空間の両方、時空間の広がりを考える学問があってもよさそうだね」

2004年1月19日 (月) - 谷川俊太郎の質問に答える

●1.金、銀、鉄、アルミニウムのうち、もっとも好きなのはどれですか?

金。やわらかいから。

●2.自信をもって扱える道具をひとつあげて下さい。

日本語。って書いてみたけれど、何となく心もとなくなってきた。

●3.女の顔と乳房のどちらにより強くエロチズムを感じますか?(女の方であれば、男の顔と身体。)

内緒。

●4.アイウエオといろはの、どちらが好きですか?

この二つを比べた場合にはどちらも同じくらい。 ひらがなの「あいうえお」のほうがいいな。

●5.いま一番自分に問うてみたい問は、どんな問いですか?

「もっとよい方法はないか?」

●6.酔いざめの水以上に美味な酒を飲んだことがありますか?

酔いざめの水って、あまりおいしいと思ったことはない。

●7.前世があるとしたら、自分は何だったと思いますか?

わからない。

●8.草原、砂漠、岬、広場、洞窟、川岸、海辺、森、氷河、沼、村はずれ、島、何処が一番落ち着きそうですか?

洞窟か村はずれ。

●9.白という言葉からの連想をいくつか話して下さいませんか?

ミルク。空の雲。ウエディングドレス。

●10.好きな匂いを一つ二つあげて下さい。

金木犀の匂い。磯辺焼きの匂い。

●11.もしできたら「やさしさ」を定義してみて下さい。

すぐそばにいる人のつらさをちょっぴり引き受けること。矛盾に満ちた話であっても最後まで聞き届けること。

●12.一日が二十五時間だったら、余った一時間を何に使いますか?

眠る。

●13.現在の仕事以外に、以下の仕事のうち、どれがもっとも自分に向いていると思いますか? 指揮者、バーテンダー、表具師、テニスコーチ、殺し屋、乞食。

バーテンダーか表具師。

●14.どんな状況の下で、もっとも強い恐怖を味わうと思いますか?

恐くて考えたくないけど、無理に考えると。 踏み切りで車がエンストを起こす。発炎筒をぐるぐる回して電車の方に走る途中、発炎筒が手から抜けて遠くに飛んでいってしまい呆然としている状況。 ああ、恐い。

●15.何故結婚したのですか?

相手を愛していたから。相手から愛してもらえたから。

●16.きらいな諺をひとつあげて下さい。

地獄のさたも金次第。

●17.あなたにとって理想的な朝の様子を描写してみて下さい。

目が覚める。窓の外はまだ薄暗い。 そっと扉を開けて外に出る。吐く息が白い。 湖を一回り散歩する。 どこかで早起きの鳥が鳴いている。朝もやで服が湿ってくる。 家に帰ると、家内が扉を開けて待っていて「早起きね、コーヒーいれる?」とにっこりする。

●18.一脚の椅子があります。どんな椅子を想像しますか?(形、材質、色、置かれた場所など)

アンティークのパインの椅子。ダイニングに置かれている。

●19.目的地を決めずに旅に出るとしたら、東西南北、どちらの方角に向かいそうですか?

西かな。

●20.子どもの頃から今までずっと身近に持っているものがあったらあげて下さい。

いや、特にないと思います。

●21.素足で歩くとしたら、以下のどの上がもっとも快いと思いますか? 大理石、牧草地、毛皮、木の床、ぬかるみ、畳、砂浜。

たたみか砂浜。

●22.あなたが一番犯しやすそうな罪は?

秘密。

●23.もし人を殺すとしたら、どんな手段を選びますか?

相手による。

●24.ヌーディストについてどう思いますか?

別に。

●25.理想の献立の一例をあげて下さい。

ご飯とお味噌汁。

●26.大地震です。先ず何を持ち出しますか?

ノートパソコン。

●27.宇宙人から『アダマペ プサルネ ヨリカ』と問いかけられました。何と答えますか?

とりあえず、にっこりして握手。

●28.人間は宇宙空間へ出てゆくべきだと考えますか?

どちらでも。

●29.あなたの人生における最初の記憶について述べて下さい。

お父さんとお風呂に入っている。私は自分の手を見ながら「お父さん、自然って不思議だね」という。

●30.何のために、あるいは誰のためになら死ねますか?

秘密にしておこう。

●31.最も深い感謝の念を、どういう形で表現しますか?

「ありがとうございます」という言葉。

●32.好きな笑い話をひとつ、披露して下さいませんか?

考え中。

●33.何故これらの質問に答えたのですか?

答えにくい質問が多かったから。

2004年1月18日 (日) - 新年会

午前中は礼拝。 お昼はみんなでラーメンを食べる。 それから奥さんは買い物に出かけ、 私と子供たちは近くの公園で遊ぶ。 寒いけれど、楽しい。

先日、いつもの編集長と新年会を兼ねた打ち合わせがあった。 今年の仕事の予定について話し合い、 スケジュールを確認して、方針の修正などを行う。 それからいつものように、本を書くということ、編集をするということ などについてざっくばらんに話し合う。

2004年1月17日 (土) - インタビュー校正

先日受けたインタビューの原稿が送られてきたので、ぱたぱたと校正中。

[WB] ぱたぱた。

インタビューの校正が終わった。zipして送信。

今日は寒かったですねえ。

明日は礼拝。

おやすみなさい、よい夢を。

2004年1月16日 (金) - 既約分数(Python版)

Python版です。 ご連絡感謝します。

2004年1月15日 (木) - 本当に訪問者が知りたい20の質問

1. サイト名とそのアドレス、あなたの希望する呼ばれ方(ハンドルネーム)についてお答えください。

サイト名は「結城浩 - The Essence of Programming」 または「プログラミングのエッセンス」 または「hyuki.com」など、お好きにどうぞ。 「結城さんち」や「結城さんとこ」と言及されることも多いですね。

アドレスは http://www.hyuki.com/ です。

名前は「結城浩」(ゆうきひろし)です。 拙著を読んでくださった読者の中には「結城先生」と呼ぶ方もいますが、 「結城さん」という呼び名が一番うれしいです。

2. あなたのサイトがどんなところか、一言でご説明ください。

プログラミングの話題や、キリスト教の話題、それから身辺のさまざまなことが書かれているサイト。 基本的には「気軽な読み物サイト」でしょうか。 何しろ1000ページ以上もあるので、一言でいうのはもはや不可能。

3. このサイトへのリンク、サイト内各ページへの直リンクについてどうお考えかお答えください。

リンクはご自由に。 フィードバックはお気軽に。

4. 「サイト上で訪問者にこれだけは絶対にして欲しくない」ということをお答えください。

絶対にして欲しくない、ということは特に思いつきません。 できればして欲しくない、ということはなくはないですが、 そういうことを聞いて配慮してくださる人は、 何を言わなくても配慮してくださるようにも思います。

5. このサイトを運営していく上であなたが何を一番重視しているかについてお答えください。

愛。

…と一言で書くと何が何だかわかりませんね。

信仰と、希望と、愛。

「励ましの言葉」というのも大切。 励ましの言葉の源は「信仰と希望と愛」ですし。

6. このサイトの更新頻度についてお答えください。

毎日どこかは更新されています。

7. 1回の更新にかかる時間についてお答えください

それって更新の量によると思うんですけれど…。 まあいいや。 たとえば最も軽く更新できる textfile.orgの場合、10秒くらい。 日記の場合、10分から1時間くらいだと思います。

でも、それとは別に、サイトに対する要望はどんなことでも大歓迎です。 その要望をどのように、いつ実現するかはまた別の話。

8. 現在の訪問者数と、今後希望する訪問者数についてお答えください。

最近はアンテナからの「訪問」が多いので、 訪問者数はよくわかりません。 でも「とってもたくさん」だと思います。

訪問者「数」に関する希望はありません。 あまり人を十把一絡げに扱うのは好きではないし、良くないことだと思っています。 いつも、訪問者は、一人一人スペシャルな存在だと思おうと心がけています。 ですから、希望は「私のサイトを必要としている人に、私のサイトが認知されること」になります。

9. あなたにとって訪問者はどんな存在かお答えください。

上に書いちゃった。

10.閉鎖の予定についてお答えください。

ありません。

でも、私が天に召されたら、閉鎖することになるでしょう。 必要なテキストはいまのうちにダウンロードしておいてくださいね。

11.あなたの性別についてお答えください。

男性。

12.あなたの生まれた年代、できればズバリ何年に生まれたかお答えください。

2004年の終わりには41歳になっています。

13.現在のご職業について差し障りない程度にお答えください。

プログラマ&文章書き。

14.出身と現住地について差し障りない程度にお答えください。

関東在住。

ところで、ここまで答えてきて思ったんだけれど、 この質問群はサイトの管理者の人物像をできるだけ 具体的に知りたいという気持ちから発しているようですよね。 その気持ちはわからないでもないのですが、 結城の考えていること、性格、気質、生活状況などは、 この問いに答えるよりも、 結城の日記や、 日記ダイジェストをぱらぱらお読みになったほうが適切に理解できるのでは…。 まあ、いいや。 この手の質問に対する回答というのはFacadeパターンのようなものなのですね。

15.振られたときに得意な話題、分野についてお答えください。

プログラミングの話題。キリスト教の話題。文章の話題。 ものの考え方、毎日を充実して生きるための工夫などの話題。

16.あなたが一番良く使っているパソコンの性能、接続環境について分かる範囲でお答えください。

ThinkPadをADSLで。

17.毎日あなたが閲覧するサイトの数をお答えください。

毎日というなら10箇所くらい?

18.Webを閲覧し始めた時期についてお答えください。

1995年ころかな。

19.初めてサイトを公開した時期についてお答えください。

同上。

20.影響を受けた or 大好き or ここが閉鎖したら落ち込むかも、というサイトがありましたらお答えください。

たくさん。

以上、 本当に訪問者が知りたい20の質問に答えてみました。

でも、20個の質問に答えるのは大変ですね。 質問は2番, 5番, 15番だけで十分で、 ただ、回答者が答えやすいように(もしくは適切にゆさぶりをかけるように)質問文をもっと練ったほうがよいと思います。

2004年1月15日 (木) - 既約分数、その後

アフタヌーン・ティールームの頭文字を見ていると、 コンピュータに関係しているようだ。 そんなことを考えながら、今日もまたパスタランチを食べていた。

あの女の子からもらった既約分数の問題を日記に書いたところ、 いろんな人から解答をもらって、とても楽しかった。 さまざまなプログラミング言語で、同じ問題を解くのは楽しい。

パスタを食べながら、 プログラミング言語について考えるというのはちょっと変な気分だ。 制御が入り組んでいるプログラムのことを「スパゲティ・プログラム」と俗に呼ぶからだが、 gotoがないJavaのようなプログラミング言語でも「スパゲティ・プログラム」は作れるだろうか。 などとつまらないこと考えて一人でくすくす笑っていたので、 誰かが後ろから肩をぽんと叩いたときには心底驚いてしまった。

手にフォークを持ったまま振り向くと、 そこにはあの「既約分数」の問題を出した女の子が立っていた。

「こんにちは」と女の子は明るい声で言い、にこっと笑った。 「日記、読みましたよ。ShiroさんがFarey数列の解答を作ってらっしゃいましたね」 彼女はそう言うと、ぐるっとテーブルを回って私の向かいの席に座った。 先日はピンクのセーターだったが、今日はセーラー服を着ている。

「そうですね。他にもいろんな解答が寄せられて楽しかったですよ。 面白い問題をありがとうございます」 私は彼女にお礼をいった。うん、楽しかった。

「フォーク」と彼女が言った。

「え? あ、失礼」 私はフォークを振り上げたまま話をしていたのだった。 ちょっときまりの悪い思いをしながら、私はフォークを皿に戻した。

「ああいう問題、お好きですか。 よく日記にもお子さんとの対話が出てきますよね。数学対話」

「そうですね。私は数学っぽい話は好きですし、 ゲームやパズルも小さいころから好きですね。 うちの長男も、私が問題を出すと、よろこんで考えるみたいです」

彼女は、言葉を選びながらゆっくりと話す。 「日記を読んでいて、 単に問題を出して子供さんに答えさせているのではないように見えます。 適切な手がかりを適切な順序で提示して、自然と何かを学んでいくような「流れ」を感じます。 宝物が隠されている美しい島がある。 島を歩きながら、隠し場所が書かれている地図の切れ端を少しずつ見つけていくような…」

「そんな大げさなものではありません。 ただ、自分が思いついた「面白そうなこと」を子供と一緒に考えているだけだと思いますよ」 私はそう答えながらも、ちょっとうれしくなった。

ふと、私は思い出した。 「そういえば、先日、あの既約分数の問題のとき、 帰り際に『時計を作る方に尋ねるとよいですよ』っておっしゃいましたよね。 あれはどういう意味ですか。日記の読者さんからも問い合わせが来ているのですが」

「あらら? だって、Stern-Brocot Treeを使ってらっしゃったじゃないですか」

「え? それが時計と何か関係があるんですか」

「ええ、Brocotさんは時計工なんです」 彼女はそう言って、人差し指を立ててにっこりした。

Where is the truth?

2004年1月14日 (水) - ご主人に信仰を打ち明けた方からのメール

イエスさまへの信仰を持っているけれど、 これまでそのことをご主人になかなか打ち明けられなかったという ご婦人から、とてもうれしいメールをいただきましたので、 みなさんとシェアしたいと思います(ご本人から公開の許可は得てあります)。

私は去年のクリスマスまで、主人に信仰をうち明けられずにいました。 反対されるのが恐かったのです。 けれども、神さまから強く迫られて、とうとうクリスマスすこし前に主人にうち明けました。 直接にはどうしても話せなかったので、携帯へメールで送りました。

ところが主人はメールチェックをしておらず、 やっと気付いたのがクリスマスイブの日だったのです。 こども達が寝てから2人で話をし、 驚くことに主人はほとんど反対せずに教会へ行くことを許してくれました。

神さまからの、素晴らしいクリスマスプレゼントです。

ハレルヤ! 主の御名を賛美します。

このご家族の上に神さまからの素晴らしい祝福があり、 これまで以上にご夫婦のよき対話がなされ、 愛にあふれた家庭を築くことができますように。

このご婦人の信仰を通して、偉大な神さまが働かれ、 私たちの想像を超えた御わざがなされますように。

また、このご婦人と同じように、 あなたに対する信仰を持ちつつも、 自分の結婚相手や家族に「信仰告白」をなかなかできないでいる方がいらっしゃると思います。 どうぞ、神さまがその方々を導いてくださり、 もっともよいタイミング、神さまのご計画のときに必要な告白をなすことができますように。

すべてのすべてを主に信頼し、イエスさまのお名前で祈ります。アーメン。

2004年1月13日 (火) - 原稿

[AL] 原稿送付。 今回はQuickSort. 自力でQuickSortを書いてみて、自分はQuickSortを理解していなかったのだな、と反省。 最近「logのパワー」を思うことが多い。 もっとも、パワー(power)というのはlogの逆ですけれどね。 (^_^)

2004年1月13日 (火) - 既約分数、もっと

向井さんのページで、 既約分数の列挙問題という解答。OCaml 版。

向井さんからは、 Ruby版もいただいております。感謝。

2004年1月12日 (月) - 今日、という日

昨日の礼拝もたいへん恵まれた。 ほんとうに私たちは、この世では旅人に過ぎないのだと思った。

旅人。

私たちはいつかこの世を通り過ぎていく。 この世自体もまた過ぎ去ってしまう。 はかなく消えるこの世に、必要以上に思いを寄せることは、 いつまでも虹を消さないでおきたいと願ったり、 修学旅行の枕投げをいつまでもやっていたいと思うのに似ている。

虹の美しさを楽しむなというのではない。 枕投げはつまらないというのでもない。 それを必要以上にとどめようとするのは不可能であり、 無為だというのだ。

私たちはこの世でいつか死ぬ。 「いつか」というのは「遠い遠い未来のいつか」という意味ではなく 「自分にわからない いつか」という意味だ。 自分の死はもしかしたら今日かもしれない。明日かもしれない。 でも100年後ではない(すでにそのころは死んでいる)。

私は、死を思うとき、生もまた思う。 自分には、神さまからこの世で時間が与えられている、と思うからだ。 時間が与えられている。それは、限られた時間だ。 神さまが与えてくださる今年。 神さまが与えてくださる今日。 そして今。

神さまのご命令は「神を信じ、人を愛する」ことであり、 「よき知らせ(イエスさまの福音)を知らせる」ことだ。

神さまを信じ、人を愛そう。 イエスさまの十字架を伝えよう。

神さまから与えられた、かけがえのない「今日」という時間に。

2004年1月11日 (日) - スターン・ブロコット木

既約分数クイズの解答として結城が示したのは、 スターン・ブロコット木の一部を使ってファレイ(Farey)数列を構成する方法です。 スターン・ブロコット木(Stern-Brocot Tree)というのは以下に示すような、 分子と分母を加算して作り出す木です。 不思議な美しさがありますね。

(参考: 『コンピュータの数学』p.116, p.118)

おっと、そろそろ教会に行かねば。礼拝礼拝。

2004年1月11日 (日) - 既約分数クイズに対する答え(Smalltalk/Squeak版)

既約分数クイズに対する解答として、 sumimさんからSmalltalk/Squeak版が到着しました! ご紹介します。

2004年1月11日 (日) - 既約分数クイズに対する答え(Java版, Perl版)

既約分数クイズに対して、 たくさんの人から解説求むというメールが来てしまったのですが、 もう眠いので、Java版とPerl版だけ解答しておきます。 解説はまた今度…。

Java版

ポイントは、makeBetweenメソッドです。

import java.util.*;

class Fraction {
    int up;
    int down;
    public Fraction(int up, int down) {
        this.up = up;
        this.down = down;
    }
    public Fraction makeBetween(Fraction right) {
        return new Fraction(this.up + right.up, this.down + right.down);
    }
    public String toString() {
        return up + "/" + down;
    }
}

class FractionList {
    Vector vector = new Vector();
    public void append(Fraction f) {
        vector.add(f);
    }
    public Fraction get(int index) {
        return (Fraction)vector.get(index);
    }
    public int size() {
        return vector.size();
    }
    public String toString() {
        String s = "";
        for (int i = 0; i < vector.size(); i++) {
            s = s + vector.get(i) + ", ";
        }
        return s;
    }
}

class MainApp {
    public static void main(String[] args) throws Exception {
        for (int N = 1; N < 10; N++) {
            System.out.println("N = " + N);
            FractionList list = new FractionList();
            list.append(new Fraction(0, 1));
            list.append(new Fraction(1, 1));
            boolean stable = false;
            while (!stable) {
                FractionList next = new FractionList();
                stable = true;
                for (int i = 0; i < list.size(); i++) {
                    Fraction left = list.get(i);
                    next.append(left);
                    if (i + 1 < list.size()) {
                        Fraction right = list.get(i + 1);
                        Fraction middle = left.makeBetween(right);
                        if (middle.down <= N) {
                            next.append(middle);
                            stable = false;
                        }
                    }
                }
                list = next;
            }
            System.out.println(list);
        }
    }
}

実行結果。 各列が、値の小さい順になっていることにもご注目。

N = 1
0/1, 1/1,
N = 2
0/1, 1/2, 1/1,
N = 3
0/1, 1/3, 1/2, 2/3, 1/1,
N = 4
0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1,
N = 5
0/1, 1/5, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 1/1,
N = 6
0/1, 1/6, 1/5, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 1/1,
N = 7
0/1, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 2/5, 3/7, 1/2, 4/7, 3/5, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 1/1,
N = 8
0/1, 1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 3/8, 2/5, 3/7, 1/2, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 7/8, 1/1,
N = 9
0/1, 1/9, 1/8, 1/7, 1/6, 1/5, 2/9, 1/4, 2/7, 1/3, 3/8, 2/5, 3/7, 4/9, 1/2, 5/9, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 7/9, 4/5, 5/6, 6/7, 7/8, 8/9, 1/1,

Perl版

実行結果は上と同じ。

use strict;

for my $N (1..9) {
    print "N = $N\n";
    my $stable = 0;
    my @list = ("0/1", "1/1");
    while (not $stable) {
        $stable = 1;
        my @newlist;
        my $left = shift @list;
        while (@list) {
            push(@newlist, $left);
            my $right = shift @list;
            my ($upL, $downL) = split(m|/|, $left);
            my ($upR, $downR) = split(m|/|, $right);
            my ($upM, $downM) = ($upL + $upR, $downL + $downR);
            if ($downM <= $N) {
                push(@newlist, "$upM/$downM");
                $stable = 0;
            }
            $left = $right;
        }
        push(@newlist, $left);
        @list = @newlist;
    }
    print join(", ", @list), ", \n";
}

以下は、読者の方からのご解答です。

2004年1月8日 (木) - ペンギンちゃんとキツネくん

ペンギンちゃんを召喚しましょう。

ペンギン: 「お呼びになりました? 何か声が聞こえてきましたので、顔を出してみましたわ。」

結城: 「最近何か面白いことありましたか? 2004年になったし、面白いページやブログとか。」

ペンギン: 「そうですわね。特別にこれといっては。でも、 「Movable Type」流行ってますわね。 「はてなダイアリー」「tDiary」も。」

キツネ: 「なんだなんだ。結城さんの日記に乱入してもいいのか?」

結城: 「おや、キツネくんまで来ちゃったよ。まあ、このまま続けてみようか。どうなるかな」

キツネ: 「ツールは何でもいいんだけどな。みんながわーっとはじめて、またわーっと人がいなくなるんじゃないか?」

ペンギン: 「といいますと? いまの流行は一時的なものだとおっしゃるんですか。キツネさんは?」

キツネ: 「ペンギンのしゃべりは何だかまわりくどいな。おうよ。まあ、もって一年かな。みんな飽きて放置状態になるんだぜ、きっと。」

結城: 「確かにそうかもしれないけれど、ツールをきっかけとして、Webで書く面白さに目覚める人もいるんじゃないかと思うよ。」

ペンギン: 「そうですわね。それにやはり、他の人に見せるためにたくさん書いていると、文章も上達するのではありませんか?」

キツネ: 「話を単純化しすぎてるんじゃないか? そういえば、結城さんの 文章教室っていう企画がありましたよね。まだ完結していませんが。結城さん、企画の途中で放置状態にすることが多いからなあ。」

結城: 「げほげほ。おお、のどに何か詰まったかな。」

キツネ: 「言葉に詰まった? 返答に詰まった?」

ペンギン: 「キツネさん、結城さんを問い詰めないでくださいね。結城さんもお忙しい身なのですから。」

キツネ: 「まあいいや。ところで「はてな」のサービスはすごい広まっているな。日記もそうだし、アンテナもすごいな。」

ペンギン: 「あら。キツネさんもわたくしと同じような感触をもってらっしゃるのですね」

キツネ: 「まあね。でも、数年前にWebに感じた面白みはあまり感じないなあ。当たり前のインフラ、当たり前のメディアになったって感じか。」

ペンギン: 「そうなんでしょうか。いろんなツールやサービスが登場するというのは、何だか楽しくなってきませんか。ブロードバンド時代、って言って盛んに宣伝もしていますし。」

キツネ: 「ぶわーっと盛り上がっている、ように見えるけれど、何だか人工的すぎたり、商業主義的すぎたりして、つまんないんだよね。いろんな人の生の声は聞けるようになった。 コメント機能でコミュニティがどうたら、リンクだWikiだトラックバックだブログだRSSだATOMだアフィリエイトだSEOだ三段シフトだといって、新しいキーワードがどんどん出てくる。」

結城: 「(三段シフトって何だろう…)」

キツネ: 「でもさ。単なる思い付きじゃなく、誰かの二番煎じでもなく、お金が儲かるからでもない、『本当によいコンテンツ』ってそんなにはないよな。」

結城: 「キツネくん、なかなか、深そうな話だね。考えるなら『コンテンツ』っていう表現自体をやめてみたらどうだろうか。」

キツネ: 「ん?」

結城: 「だから、キツネくんがいう『本当によいコンテンツ』というものをもう少し別な表現にしてみたら、何かがわかるかもしれないということなんだけど。」

キツネ: 「どういう感じかっていうとね、結城さん。『自分がほんとうに知りたい情報』のような…いや、違うな。『今日読んで明日は忘れてしまう情報ではない情報』に近いかな」

結城: 「『繰り返して読みたい文章』ってことだろうか。」

ペンギン: 「まだ、わたくしにはよくわかりませんわ。」

キツネ: 「オレにもよくわかってないんだって。」

結城: 「話、ずれるかもしれないけれど、私は、ネットでのやりとりっていうのは、 完成形としてとらえるんじゃなく、1つのトリガー、きっかけのようなものとしてとらえたほうが よいんじゃないか、って思っていますね。日記やブログを書くことも、それで何か完成文書を作るというよりも、 自分がよく考えるきっかけ、調べるきっかけ、という意味合いが強いように思う。」

ペンギン: 「(うなずく)」

キツネ: 「メールのやりとりなども?」

結城: 「うん、そうですね。 製品を生み出そうとしているわけではないし、製品を作ることが主眼なのでもない。 ネットでのやりとりで、自分自身が活性化するというか何というか。」

ペンギン: 「ああ…。いま何だか大切なことを思い出しかけたのですが、心をすりぬけていってしまいましたわ。」

結城: 「だからね。ネット「だけ」になってしまうのはとてももったいないんですよ。きっと。 ネットをトリガーとするけれども、その後で、オフラインになっている自分の時間で、 ゆっくりと物事を考えること。きちんと本を読むこと。鳥の声に耳をすまし、花の薫りを楽しみ、 トマトを味わうこと。それが大事。」

ペンギン: 「トマトでなければなりませんの?」

キツネ: 「おいおい、たとえば、ってことだよ。」

結城: 「そういうオフラインでの生活を忘れてしまうほどネットにひたるのは、 かえってネットの意味を失わせてしまうという…。 ああ、でも、よくわかっていないな。」

ペンギン: 「新鮮なお魚はおいしいですわね。冷凍じゃなく。」

キツネ: 「だから、違うって…。いや、違わないのかな。」

2004年1月7日 (水) - 既約分数クイズに対する答え

2003年12月30日に結城が出した謎の女の子が出した既約分数クイズ に対して、解答をいただいています。

いつも素晴らしいテキストを公開・翻訳してくださる Shiro Kawaiさんからの解答をいただきましたので、ご紹介します。

nobsunさんのHaskellによる解答も知りました。

自力で挑戦したい方は、 自分で考えた後でお読みになるとよいでしょう。

2004年1月6日 (火) - 仕事

今年の私の年間聖句は、

「まことに、私のいのちの日の限り、いつくしみと恵みとが、私を追って来るでしょう。私は、いつまでも、の家に住まいましょう。(詩篇23:6)」

です。 この聖句はとてもいいですね。 特に「いつくしみと恵みとが、私を追って来る」というところがよいです。 神さまの愛はとても大きく、深い。神さまの恵みは、私を追ってきてくださる。 「いつくしみと恵みとが、私を追って来る」 …うーん、味わい深い。

自分が主ではなく、神さまが主。 自分を主にするのではなく、神さまを主とする。 神さまを従わせるのではなく、神さまに従う。 自分勝手に自分の利益を求めるのではない。 聖書の神さまに従っていると、ひとりでに「いつくしみと恵みとが、私を追って来る」 神さまはそのように備え、あふれんばかりに与えてくださる方。 神さまは気前のよい方。 今年も、私の想像を超えた恵みが、私を追ってくるでしょう。 私はそのことを信じ、すでにそのことが起こったかのように先取りして感謝します。 今年も、私の予想を超えたいつくしみが、私をどこまでも追ってくるでしょう。 私はそのことを感謝し、喜びます。 神さま、あなたはなんとすばらしい方でしょう。 なんとすばらしい人生を――毎日を――あなたは与えてくださるのでしょう。

疑わず、主を信じる人生は、この世からすでに天国がはじまっているのかもしれません。

すべてに感謝し、すべてに喜ぶ。 よい言葉を口に出し、わるい言葉を口にしない。 よい言葉を心にとどめ、わるい言葉を聞き流す。 いつも感謝する。いつも喜ぶ。 神さまに聞き、聖書を読む。 人をはげまし、人から受けた悪を思わない。 人をうらまない。うらまずにゆるす。 ゆるすだけではなく、その人のしあわせをそっと祈る。 不遇をなげかない。なげかずに感謝する。 状況を愚痴らない。愚痴らずに感謝する。 改善を主に祈りつつも、感謝する(ここに深い味わいがある)。 主には主のご計画があることを覚える。 自分もそのご計画に加わることを願う。 人と同じ何かではなく、神さまが自分だけに特別の何かを備えてくださることを信じ、期待し、喜ぶ (そして他のひとりひとりにも、それぞれに特別の何かが備えられていることを知る)。

イエスさまの十字架の救いのメッセージを、今年もしっかりとつかみましょう! 主はわれらのよき羊飼い。われらには乏しいことがない。 主のいつくしみと恵みは、いつも私たちを追ってくる。 「私のいのちの日の限り、いつくしみと恵みとが、私を追って来る」

いつくしみと恵みとが今日も私を追って来ることを期待して、感謝します!

[WB] カリコリカリコリ。パタパタパタパタ。 そして、今日も地道に言葉を並べるのである。 (^_^)

[AL] 今回はQuickSortのお話。

2004年1月5日 (月) - 公開鍵更新

年初にあたり、GnuPGの公開鍵を更新しました。 昨年自分が翻訳した GnuPG README が参考になりました。 要するに…

gpg --gen-key で鍵を作る。有効期限を1年とした。

gpg --gen-revoke B0C960D2 でrevocation certificateを作って、大事に保存。 あ、B0C960D2というのは、いま作った鍵のIDです。 同じ名前の鍵がたくさんあるので、IDで指定しました。

gpg --export --armor B0C960D2 で公開鍵をエクスポートする。

公開鍵を作っても、 実際にはほとんど使うことはないんですけれどね。 ときどきpgpやGnuPGも動かしてみないとね。

2004年1月4日 (日) - 日曜日ですね

午前中は礼拝。 お昼ごはんは外で食べる。 午後からファミリーレストランでお仕事。

昨日も凧揚げをしたのだが、 風があまりなかったので、 高くは揚がらなかった。

2004年1月2日 (金) - いろいろ

午後、家族みんなで公園に散歩。 みんなが凧揚げをしているので、私たちも近所のお店で凧を2個買う。 子供たちは走り回って凧揚げをするが、すぐに落ちてしまう。 私が高く揚げて、長男と奥さんにバトンタッチ。 帰ってくると、私はバテバテになっていた。 日ごろの運動不足がたたる。

2004年1月1日 (木) - いろいろ

朝。おせちとお雑煮を食べる。 午前中は教会で元旦礼拝。

昼。お雑煮を食べる。 その後、年賀状ソフトと格闘して、年賀状を印刷。 それからファミリーレストランに行って二時間くらい仕事をする。

夕方。 家内と次男は『幼稚園』の付録についていたカルタで遊ぶ。 私と長男は五目並べをしたり、トランプをしたり。 それからみんなでTSUTAYAに行ってCDやビデオを借りる。

2004年1月1日 (木) - あけましておめでとうございます

主の御名をほめたたえます。

みなさんの上に神さまの祝福が豊かにありますように。

本年もwww.hyuki.comをよろしくお願いいたします。 (^_^)

ぜひ、感想をお送りください

あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。

あなたの名前: メール:
学年・職業など: 年齢: 男性女性
(上の情報は、いずれも未記入でかまいません)


何かの理由でうまく送れない場合にはメール hyuki@hyuki.com でお願いします。

豊かな人生のための四つの法則