Wizardに尋ねる #357
1 から 9 までの各数字をそれぞれ 1 回ずつ使用して、分子に 1 桁、分母に 2 桁の分数を 3 つ作成します。3 つの分数の和は 1 になります。
たとえば、8/16 + 9/27 + 3/24 は、合計が 1 ではなく 23/24 になることを除いて、すべての条件を満たします。
答えを見つけるには、permut(9,3)*permut(6,3)*permut(3,3)/fact(3) = 60,480通りの可能な順列を並べる必要があります。少なくとも1時間は試行錯誤しましたが、解は見つかりませんでした。
そこで、9桁の数字をfact(9) = 362,880通りの並び替え方法すべてを試すプログラムを書き、すべてテストしました。難しいのは、9桁の数字をあらゆる順序で並べる方法をすべて試すことでした。ここでは、辞書式ソートを使ってその方法を説明します。
- 9 つの要素すべてを、最小から最大の順に配列します。
- 配列内の最後の要素のうち、次の要素よりも大きい要素を探します。見つからない場合は、プログラムを終了します。
- 手順 2 の次の要素から始めて、手順 2 よりも大きい配列の最後の要素を検索します。
- 手順 2 と 3 の配列内の要素を交換します。
- 手順 2 の次の配列の要素を最後まで逆にします。
- ステップ2に戻る
このプロセスに従うと、3 つの分数を順序付ける 6 つの方法すべてに対して 1 回ずつ、合計 6 回、正しい答えが見つかります。
[spoiler=コード]
私は、1 から 9 までのすべての数字を辞書式順序で並べ替え、それぞれが解であるかどうかをテストする次のコードを作成しました。
void three_fraction(void) { int i、x_max、y_max、temp_array[100]、hold、pt; int lex_array[] = { 1,2,3,4,5,6,7,8,9 }; int num_elements = sizeof(lex_array) / sizeof(lex_array[0]); 整数カウント = 0; ブール停止 = false; ダブルtot3; cerr << "要素数 =\t" << num_elements << "\n"; する { カウント++; tot3 = (double)lex_array[0] / (double)(10 * lex_array[1] + lex_array[2]); tot3 += (double)lex_array[3] / (double)(10 * lex_array[4] + lex_array[5]); tot3 += (double)lex_array[6] / (double)(10 * lex_array[7] + lex_array[8]); tot3 == 1.0の場合 { cerr << count << "\t"; cerr << lex_array[0] << "/" << lex_array[1] << lex_array[2] << " + "; cerr << lex_array[3] << "/" << lex_array[4] << lex_array[5] << " + "; cerr << lex_array[6] << "/" << lex_array[7] << lex_array[8] << "\n"; } x_max = -1; (i = 0; i < (要素数 - 1); i++) の場合 { (lex_array[i] < lex_array[i + 1]) の場合 x_max = i; } (x_max >= 0)の場合 { y_max = 0; (i = x_max + 1; i < num_elements; i++) の場合 { lex_array[x_max] < lex_array[i] の場合 y_max = i; } ホールド = lex_array[x_max]; lex_array[x_max] = lex_array[y_max]; lex_array[y_max] = 保持; if (x_max + 1 < num_elements - 1) // 逆順 { (i = x_max + 1; i < num_elements; i++) の場合 { temp_array[i] = lex_array[i]; } pt = 0; (i = x_max + 1; i < num_elements; i++) の場合 { lex_array[i] = temp_array[要素数 - 1 - pt]; pt++; } } } それ以外 停止 = true; } while (stop == false); }[/ネタバレ]
この質問は、Wizard of Vegasの私のフォーラムで尋ねられ、議論されています。
ある男が10ガロンのワイン樽と水差しを持っていました。ある日、彼は水差し一杯のワインを汲み上げ、樽に水を注ぎました。その後、ワインと水が完全に混ざり合ったところで、彼はもう一杯の水差しを汲み上げ、再び樽に水を注ぎました。すると、樽にはワインと水が同量ずつ入っていました。
水差しの容量はどれくらいでしたか?
[spoiler=解決策]
j を水差しの容積とします。
最初に水差しにワインを注ぎ込んだ後、水差しには10-jガロンのワインが残っていました。ワインを水に置き換えた後、樽全体に対するワインの比率は(10-j)/10でした。
ジョッキが薄めたワインをすくい取った後、樽の中には10ガロン(約4.7リットル)の薄めたワインが残っていました。薄めたワインに含まれる純ワインの量は、次のように表すことができます。
(10-j)*((10-j)/10) = 5
(10-j)^2 = 50
j^2 - 20j + 100 = 50
j^2 - 20j + 50 = 0
j = (20 +/- 平方根(400-200))/2
j = (20 +/- 10*sqrt(2))/2
j = 10 +/- 5*sqrt(2)
水差しは樽より大きくすることはできないので、負の符号を使用する必要があります。
j = 10 - 5*sqrt(2) =~ 約 2.92893218813452 ガロン。
[/ネタバレ]この質問は、Wizard of Vegasの私のフォーラムで尋ねられ、議論されています。
6面サイコロを何度も振り、出た目の合計が13以上になるまで繰り返します。最終的な合計の平均値、中央値、最頻値はいくらですか?
中央値 = 14
モード = 13
[spoiler=解決策]
この問題はマルコフ連鎖を使う必要がありました。次の表は、左の列の累積合計に応じて、それぞれの最終合計の確率を示しています。まず、合計が13から18の明らかなケースから始めましょう。次に、累積合計が0から12の場合は、下の6つのセルの平均を取ります。
初期状態の確率は、合計が 0 の最初の行にあります。
マルコフ連鎖
ロールの合計 | 13 | 14 | 15 | 16 | 17 | 18 |
---|---|---|---|---|---|---|
0 | 0.279263 | 0.236996 | 0.192313 | 0.145585 | 0.097371 | 0.048472 |
1 | 0.290830 | 0.230791 | 0.188524 | 0.143842 | 0.097114 | 0.048899 |
2 | 0.293393 | 0.241931 | 0.181893 | 0.139625 | 0.094943 | 0.048215 |
3 | 0.289288 | 0.245178 | 0.193717 | 0.133678 | 0.091410 | 0.046728 |
4 | 0.280369 | 0.242560 | 0.198450 | 0.146988 | 0.086950 | 0.044682 |
5 | 0.268094 | 0.235687 | 0.197878 | 0.153768 | 0.102306 | 0.042267 |
6 | 0.253604 | 0.225827 | 0.193419 | 0.155611 | 0.111500 | 0.060039 |
7 | 0.360232 | 0.193566 | 0.165788 | 0.133380 | 0.095572 | 0.051462 |
8 | 0.308771 | 0.308771 | 0.142104 | 0.114326 | 0.081919 | 0.044110 |
9 | 0.264660 | 0.264660 | 0.264660 | 0.097994 | 0.070216 | 0.037809 |
10 | 0.226852 | 0.226852 | 0.226852 | 0.226852 | 0.060185 | 0.032407 |
11 | 0.194444 | 0.194444 | 0.194444 | 0.194444 | 0.194444 | 0.027778 |
12 | 0.166667 | 0.166667 | 0.166667 | 0.166667 | 0.166667 | 0.166667 |
13 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 |
14 | 0.000000 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 |
15 | 0.000000 | 0.000000 | 1.000000 | 0.000000 | 0.000000 | 0.000000 |
16 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 0.000000 | 0.000000 |
17 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 0.000000 |
18 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 |
この質問は私のフォーラム「Wizard of Vegas」で尋ねられ、議論されています。