2017年4月10日月曜日

学習環境

数学読本〈4〉数列の極限,順列/順列・組合せ/確率/関数の極限と微分法(松坂 和夫(著)、岩波書店)の第15章(「場合の数」 を数える - 順列・組合せ)、15.2(組合せ)、重複組合せ、問24、25、26、27、28.を取り組んでみる。


  1. ( 3+101 10 )=( 12 10 )=( 12 2 )=66

  2. ( 6+61 6 )=( 11 6 )=( 11 5 )= 11·10·9·8·7 5·4·3·2·1 =11·3·2·7=462

  3. ( 4+31 4 )·( 3+31 3 )=15·10=150

  4. ( ( n+1 )+r1 r )=( n+r r )

  5. ( 2+5 5 )=( 7 5 )=21 ( 3+5 5 )=( 8 5 )=56

コード(Emacs)

HTML5

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

JavaScript

let btn0 = document.querySelector('#run0'),
    btn1 = document.querySelector('#clear0'),
    pre0 = document.querySelector('#output0');

let permutation = (n, r) => {
    let iter = (i, result) => {
        if (i > n) {
            return result;
        }
        return iter(i + 1, i * result);
    };
    return iter(n - (r - 1) , 1);
};
let factorial = (n) => {
    return n <= 1 ? 1 : n * factorial(n - 1);
};

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

let combinationsWithRepetition = (n, r) => {
    return combination(n + r - 1, r);
};

let output = () => {
    pre0.textContent =
        '24.\n' +
        `${combinationsWithRepetition(3, 10)}\n` +
        '25.\n' +
        `${combinationsWithRepetition(6, 6)}\n` +
        '26.\n' +
        `${combinationsWithRepetition(4, 4) * combinationsWithRepetition(3, 3)}\n` +
        '28.\n' +
        `${combination(7, 5)}\n` +
        `${combination(8, 5)}\n`;
};

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

output();














						

0 コメント:

コメントを投稿