問題文を読む(2666 文字)
◎解答・解説 | 【 ●本問について私が意図していた回答 【説明の方針】 まず、私が意図していた解についての説明の方針を示します。 以下、イ、ロ、ハは人物です。 《1》最初に乱数の作り方を説明します。 《2》次に下記の事柄を説明します。 「《1》を利用しつつ、ロ、ハの年齢の大小をイに判定させる。その際に、ロ、ハは互いに自分の年齢が他の2人に悟られないように配慮する。」 《3》最後に《2》を使えばA嬢B嬢C嬢の年齢の大小順についての知識を、互いに自分の年齢が悟られないようにして、得られることを示します。 以上で解についての説明の方針を示しました。 【乱数の作り方】 鉛筆の側面をカッターで薄く削り数字を書き込むことによりサイコロを作ります。例えば鉛筆1には{0:1:2:3:4:ふりなおし}、鉛筆2には{0:5:0:5:0:5}とし、2本の鉛筆を転がして出た目の和をとることで、0から9までの数をランダムに一桁分得ることができます。本問では3桁の乱数を作れば充分でしょうから、以下、特別に言及しない限り乱数と言えば3桁とします。 ここまで、乱数の作り方について説明しました。 【ロ、ハの年齢の大小をイに判定させる】 ロの年齢をm、ハの年齢をnとします。 ロ、ハは共同してひとつの乱数Xを作りその値についての知識を共有しイには伏せておきます。ロはハに内緒で紙にm+Xの値を書き付け、イに渡します。ハはロに内緒で紙にn+Xの値を書き付け、イに渡します。イはm+Xとn+Xとの大小比較を行います。これはmとnとの大小比較の結果と一致します。イは判定結果をロ、ハに教えます。ここまでで、自分の年齢が他者に悟られることなくロ、ハの年齢の大小をイに判定させ、その知識を共有する方法について説明しました。 【A嬢B嬢C嬢の年齢の大小順を共有する】 前項のイの役割をA嬢B嬢C嬢が持ち回りで三人ともに受け持ちます。これにて2人同士の互いの年齢順の判定が3つ全てそろいますから、3人の間の年齢順が定まりました。 ※以上で本問についての私が意図した回答について説明いたしました。むろん別解もあろうことかと存じますが比較的に実行しやすいものをとこの方法をご紹介させて頂きました。 ●おまけ問題1についての回答案 【説明の方針】 ある手順で、A嬢が紙に数値を書き付け、B嬢が紙に数値を書き付け、C嬢が紙に数値を書き付け、皆に公開します。それらの数値からは各人の年齢はわからないようにします。それらの3つの数値を合計すると全員の年齢の合計が得られることを示します。 そのために、最初に乱数を利用して年齢を隠す方法を説明します。次に、合計すれば年齢の合計となることも示します。 【乱数の作成】 A嬢は乱数aを、B嬢は乱数bを、C嬢は乱数cを、他の人にはわからないように作ります。 【乱数の一部共有】 A嬢は乱数aを、B嬢に知らせます。C嬢には隠します。 同様にして、B嬢は乱数bを、C嬢に知らせます。A嬢には隠します。 また同様にして、C嬢は乱数cを、A嬢に知らせます。B嬢には隠します。 【紙に書く数値の決定】 A嬢は紙に、 A嬢の年齢+a−c の数値を書きます。この数値からは、B嬢もC嬢も単独ではA嬢の年齢を割り出せません。 同様にして、 B嬢は紙に、 B嬢の年齢+b−a の数値を書きます。この数値からは、C嬢もA嬢も単独ではB嬢の年齢を割り出せません。 また同様にして、 C嬢は紙に、 C嬢の年齢+c−b の数値を書きます。この数値からは、A嬢もB嬢も単独ではC嬢の年齢を割り出せません。 【年齢の総合計を求める】 3人は各自が数値を書いた紙を公開します。それらの合計は以下の数値に等しくなります。 (A嬢の年齢+a−c)+(B嬢の年齢+b−a )+(C嬢の年齢+c−b )= (A嬢の年齢+B嬢の年齢+C嬢の年齢) ……あとは3で割って平均年齢を求めることとなります。 まとめますと、乱数を使って年齢を隠すものの、合計を求める際には、それらはキャンセルしあって消えてしまうという仕掛けです。 以上で、おまけ問題1の解説を終わります。 】 |
スローガン:囁き欄あり(答えがわかったら皆に内緒で囁いてね!)
Page: 1 | 2 | |
Page: 1 | 2 | |