2017年4月20日木曜日

学習環境

数学読本〈4〉数列の極限,順列/順列・組合せ/確率/関数の極限と微分法(松坂 和夫(著)、岩波書店)の第15章(「場合の数」 を数える - 順列・組合せ)、15.3(二項定理)、多項定理、問46.を取り組んでみる。


  1. ( 4+61 6 )=( 9 6 )=( 9 3 )=3·4·7=84 6+0+0+0=6,( 6 0 )=1, a 9 5+1+0+0=6,( 6 1 )=6, a 9 b 4+2+0+0=6,( 6 2 )=15, a 4 b 2 4+1+1+0=6,( 6 4 )·( 2 1 )=30, a 4 bc 3+3+0+0=6,( 6 3 )=20, a 3 b 3 3+2+1+0=6,( 6 3 )·( 3 2 )=60, a 3 b 2 c 3+1+1+1=6,( 6 3 )·( 3 1 )·( 2 1 )=120, a 3 bcd 2+2+2+0=6,( 6 2 )·( 4 2 )=15·6=90, a 2 b 2 c 2 2+2+1+1=6,( 6 2 )·( 4 2 )·( 2 1 )=180, a 2 b 2 cd

コード(Emacs)

HTML5

<button id="run0">run</button>
<button id="clear0">clear</button>
<pre id="output0"></pre>
<script src="sample46.js"></script>

JavaScript

let btn0 = document.querySelector('#run0'),
    btn1 = document.querySelector('#clear0'),
    pre0 = document.querySelector('#output0'),
    p = (x) => pre0.textContent += x + '\n';

let range = (start, end, step=1) => {
    let iter = (i, result) => {
        return i >= end ? result : iter(i + step, result.concat([i]));
    }
    return iter(start, []);
};
let factorial = (n) => {
    return n <= 1 ? 1 : n * factorial(n - 1);
};

let combination = (n, r) => {
    return factorial(n) / (factorial(r) * factorial(n - r));
};

let output = () => {        
    p('46.');
    [
        [[9, 3]],
        [[6, 0]],
        [[6, 1]],
        [[6, 2]],
        [[6, 4], [2, 1]],
        [[6, 3]],
        [[6, 3], [3, 2]],
        [[6, 3], [3, 1], [2, 1]],
        [[6, 2], [4, 2]],
        [[6, 2], [4, 2], [2, 1]]
    ].forEach((args) => {
        p(args.reduce((prev, x) => prev * combination(...x), 1));
    });
};

btn0.onclick = output;
btn1.onclick = () => {
    pre0.textContent = '';
};

output();














						

0 コメント:

コメントを投稿