サイコロのでた目でできる二等辺三角形は何通り?

とある中学入試の「算数」の問題

サイコロを三回振って出た目を辺とする三角形のうち、二等辺三角形になるのは何通りあるか。正三角形も含めるものとする

サイコロを三回振って出た目を辺とする三角形のうち、二等辺三角形になるのは何通りあるか。正三角形も含めるものとする。

設問は以上。小学生になった気持ちで問題を解きたい方はここで読むのをストップして答えを導き出してください。

ヒント

まず、サイコロは1から6までなので、全体の組み合わせとしては6×6×6=216通りの組み合わせが存在する。

そのうちのいくつかが三角形になり、さらにそのうちのいくつかが二等辺三角形(正三角形も含む)になる。それが何パターンあるのか。

見逃しがちなのが、出た目の全てが三角形になるわけではない、ということ。

例: 2,2,5の目では三角形を形作れない。
一番長い辺の1/2より他の2辺が長くないと三角形を形成できないのだ。ホチキスの針みたいになっちゃう。

確率ではない

もう一つ。この問題は二等辺三角形の組み合わせパターンの総数を問われている。確率ではない。
216回投げても全てのパターンが出現するわけではないし。

解き方

よし解こう、パソコンで

216通りの組み合わせなら総当たりで調べられなくもない。

最初の一投目に1が出て、次も1、三投目も1、
次に1,1,2
1,1,3
1,1,4…

こうして216行まで書き出して、二等辺三角形を形成しているパターンを数え上げよう。疲れる。

よしここはJavaScriptで216パターンを調べてみよう。


// サイコロを三回振って出た目を辺とする三角形が二等辺三角形になるパターンは何通りあるか。
// 正三角形も含めるものとする

const isoscelesTriangle = () => {
    let counter = 0;
    for (let a = 1; a <= 6; a++) { // 1投目
        for (let b = 1; b <= 6; b++) { // 2投目
            for (let c = 1; c <= 6; c++) { // 3投目
                if (a == b && b == c) {
                    counter += 1;
                    console.log(a,b,c); // 辺abcが同じ正三角形
                } else if (a == b && c < a * 2) {
                    counter += 1;
                    console.log(a,b,c); // 辺abが同じ二等辺三角形
                } else if (a == c && b < a * 2) {
                    counter += 1;
                    console.log(a,b,c); // 辺acが同じ二等辺三角形
                } else if (b == c && a < b * 2) {
                    counter += 1;
                    console.log(a,b,c); // 辺bcが同じ二等辺三角形
                }
            }
        }
    }
    const res = counter + '通り';
    return res;
};

console.log(isoscelesTriangle());

コードの説明

ポイント1はサイコロの目の組み合わせの総数を調べるため、forを3投分入れ子にする。
一投目1の時、二投目1でさらに三投目1
一投目1の時、二投目1でさらに三投目2…
一投目1の時、二投目1でさらに三投目を6回調べたら二投目に繰り上がって

一投目1の時、二投目2でさらに三投目1
一投目1の時、二投目2でさらに三投目2…


for (let a = 1; a <= 6; a++) { // 1投目
        for (let b = 1; b <= 6; b++) { // 2投目
            for (let c = 1; c <= 6; c++) { // 3投目
            // 出た目で作られる三角形を調べる処理へ
            }

その時の目の組み合わせが二等辺三角形になるかを調べるのがこちら


if (a == b && c < a * 2) {
    // 二等辺三角形なら1カウント足す処理へ
}

辺aと辺bが同じ二等辺を満たしていても、残りの辺cは辺a(b)の2倍以下でないと三角形の形にならない。

そしてそれを×3回分。二等辺は、
a=b
b=c
c=b
の三パターン存在するので出た目の組み合わせが二等辺三角形にならないかチェックする。

JavaScriptの実行環境について

もしJavaScriptについて詳しくない方、中学数学入試にだけ興味ある方へ。

ブラウザのコンソールで試してみれば答えが出ます。二等辺三角形になった時の辺の組み合わせも出力しときます。

chromeならブラウザ右上の3点アイコン(⋮)から、[その他のツール] => [デベロッパーツール]をクリック。
コンソール(console)タブをクリックして出てきた画面に、上記コードをペーストしてエンターキー!

同じ画面に新しく結果が表示されているはずなので確認してみてください。

答え

いよいよ答えです。=> 69通りです。本当です!

問題文にはサイコロと三角形という限定的な自然数しか出てこないのに。
シンプルなのに罠が意外とある。
小学生の算数の範囲で解けるなかなかクリエイティブな問題だと思います。

いっぽう総当たりで数えただけの泥臭い解法とは。。とほほ。
入試という限られた時間内で小6算数の知識だけで解いちゃうエレガントな方法があるのでしょうか。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントの入力は終了しました。