研究課題 研究課題 王様はみんなにプロポーズする。
そよ風さん「”安定な結婚問題”って、生活が安定するんですか?」
ナイス博士「そうじゃないだろう。プログラムの問題なんだから。」
そよ風さん「それもそうですね。どれどれ...おおっ、あったわ!!」
*************************************************************************
【安定な結婚問題】*同じ人数の男女がお互いに結婚相手を決める時、浮気しないように適切な組み合わせを求める 問題。自分の結婚相手より互いに惹かれあう男女が出来ないようにしなければならない。
【解決法】
1.男性は、最も好きな女性にプロポーズする。振られたら、次に好きな女性にポロポーズする。
2.女性は、相手が誰もいなければ、とりあえずキープする。誰かいたら、より好きな方をキープして もう一人を振る。
3.男性は、振られたらすぐ次にプロポーズし、相手が決まるまで続ける。
*************************************************************************
ナイス博士「うーーーん、どうも感心しないやりかただなあ.....」
そよ風さん「なんだか、手当たり次第にプロポーズって感じですねえ..」
ナイス博士「それに、とりあえずキープして、もっといい相手が現れたらすぐ振るって 言うのもちょっとどうかなあ。」
そよ風さん「ええ、でもまあ、それが合理的な方法だって事でしょうね。」
ナイス博士「ところで、相手の名前は?それに、職業は?」
そよ風さん「ええと、メモがあります。"ジョン","マイケル","サム","キム","ペイ","サブ", ゴン","カズ",みんな外人みたいな名前ですねえ。」
ナイス博士「で、職業は?」
そよ風さん「....”King”ですって。」
ナイス博士「キングだって!王様かい?」
そよ風さん「いやあ、まさかねえ..女王様に対抗して見栄を張ってるのかしら。」
ナイス博士「いや、そんな事はしないと思うがなあ..」
そよ風さん「そうかしら?博士号も持ってないくせに博士って言わせる人もいますよ。」
ナイス博士「!.......」
ナイス博士「とりあえず、コードを書いてみようか。」
そよ風さん「どうするんですか?..」
ナイス博士「男女をあらわすクラス、Personを作って、説明に有るような振る舞いをさせるんだ。」
そよ風さん「じゃあ、男のメソッドをproposeEveryone()として、女性はkeepAndSetGarbage(Person male) をする事にしましょう。」
そよ風さん「こんな感じですか?」
ナイス博士「そうだな。」
そよ風さん「あとは、UsefulAppletを使って、このメモのデーターで計算するサプクラスを 作ればいいですね。」
ナイス博士「いや、実はね、UsefulAppletは改良したんだ!」
そよ風さん「へえっ、どうしたんですか?」
ナイス博士「うん、あれはJTextAreaがメインのコンポーネントだっただろう?」
そよ風さん「ええ、それで?」
ナイス博士「それを、ポリフォリズムでJTableとか、どんなコンポーネントでも使えるように したんだ。こうだ!!」
そよ風さん「ほうっ、さすがですねっ!いいじゃないですか!」
ナイス博士「ふっふっふっ、まあ、そうでもないよ。」
そよ風さん「setComponent()を書き換えて、使いたいコンポーネントを設定するんですね?」
ナイス博士「うん、そうだよ。」
そよ風さん「でっ、あとは?」
ナイス博士「AbstractTableModelを継承して、女王様と相手のデーターをラップしてJTableで 表示するクラスを作るんだ!」
簡単なクラス図
そよ風さん「よしっ!出来たわ!」
ナイス博士「うんっ、うまく行ったぞ!」
そよ風さん「じゃ、さっそくオーナーに見せて来ます!」
そよ風さんは研究所を後にした。
続く。
」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」」
作者へのメッセージ