2024年1月29日月曜日

おお、この問題は感動的だ (スラド日記 2010-06-30)

 


タレコミ
されてる 本家で話題の 問題:

I have two children, one of whom is a son born on a Tuesday. What is the probability that I have two boys?

直感に反するので、感動的に混乱しますね。とりあえず高校範囲で解いておきましょう。

問題: 2人子どもがいて、片方は火曜日生まれで男の子である。2人とも男の子の確率は?

等確率となる根元事象として、 性と曜日を結びつけたものを、生まれた順に並べる対を使ってみます。 〈男火, 男[日-土]〉 が 7個、〈男[^火], 男火〉 が 6個、 〈男火、女[日-土]〉 が 7個、〈女[日-土], 男火〉 が 7個のうちの、 最初の 2つのタイプだから、(7 + 6) / (7 + 6 + 7 + 7) = 13/27。

本家でも下の 2つと混同している人がいるようです。 無駄ですが、比較のために上と同じような根元事象をとってみます。

類問: 2人子どもがいて、年長の子が男の子

〈男[日-土], 男[日-土]〉が 49個, 〈男[日-土], 女[日-土]〉 が 49個のうちの 〈男[日-土], 男[日-土]〉 の 49個なので、 49/(49 + 49) = 1/2。

類問: 2人子どもがいて、片方が男の子である。2人とも男の子の確率は?

〈男[日-土], 男[日-土]〉が 49個, 〈男[日-土], 女[日-土]〉が 49個, 〈女[日-土], 男[日-土]〉 が 49個 のうちの 〈男[日-土], 男[日-土]〉 の 49個なので、 49/(49 + 49 + 49) = 1/3。

;; これから週後半のしんどいモードに突入なので、日記に書いて逃げる。

;; [21h50付記] おっちゃん、余裕ないから、タレコミの方で遊んでね。 やっつけだけど、おまけにシミュレーションつけたげるから。

<html>
<body>
<script>
var times = 4 * 49 * 1000;
var numerator = 0;
var denominator = 0;

var senior = { sex: 0, day: 0};
var junior = { sex: 0, day: 0};

// 0 = Male, 1 = Female.
function set_sex(obj) {
    obj.sex = Math.floor(Math.random() * 2);
}

// 0 = Sun, 1 = Mon, 2 = Tue, ...
function set_day(obj) {
    obj.day = Math.floor(Math.random() * 7);
}

function is_the_case() {
    return ((senior.sex == 0 && senior.day == 2) || (junior.sex == 0 && junior.day == 2));
}
function are_both_male() {
    return (senior.sex == 0 && junior.sex == 0);
}

function one_trial() {
    set_sex(senior); set_day(senior);
    set_sex(junior); set_day(junior);
    if (is_the_case()) {
        denominator++;
        if (are_both_male()) {
           numerator++;
        }
    }
}

// the main loop
for (var i = 0; i < times; i++) {
    one_trial();
}
alert(numerator + "/" + denominator + " = " + (numerator/denominator)
                + " (expected: " + 13/27 + ")");
</script>
</body>
</html>

0 件のコメント:

コメントを投稿