Loading [MathJax]/jax/output/HTML-CSS/jax.js

2017年4月18日火曜日

学習環境

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


    1. 7!2!1!4!=105

    2. 7!0!3!4!=35

    3. 6!1!2!3!0!=60

    4. 6!2!2!1!1!=180

  1. 6!p!q!r!(x)p(2y)q5r=6!p!q!r!(2)q5r·xpyqp=2,q=4,r=624=06!2!4!0!·(2)450=15·16=240p=2,q=1,r=6pq=36!2!1!3!(2)153=60·250=15000p=1,q=1,r=611=46!1!1!4!(2)154=30·2·625=37500

  2. 7!p!q!r!(x2)p(3x)q4r=7!p!q!r!(3)q4rx2p+q2p+q=2p=0,q=2,r=5p=1,q=0,r=67!0!2!5!(3)245+7!1!0!6!(3)046=21·9·45+7·46=45(189+28)=1024·217=2222082p+q=5p=0,q=5,r=2p=1,q=3,r=3p=2,q=1,r=47!0!5!2!(3)542+7!1!3!3!(3)343+7!2!1!4!(3)144=21(3)542+140(3)343+105(3)44=(3)42(21·(3)4+140(3)2·4+105·42)=48(1701+5040+1680)=4042082p+q=10p=3,q=4,r=0p=4,q=2,r=1p=5,q=0,r=27!3!4!0!(3)440+7!4!2!1!(3)241+7!5!0!2!(3)042=35·81+105·9·4+21·16=2835+3780+336=6951

コード(Emacs)

HTML5

<button id="run0">run</button>
<button id="clear0">clear</button>
<pre id="output0"></pre>
<script src="sample43.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 multinomialCoefficient = (n, ...args) => {
    return factorial(n) / args.map(factorial).reduce((x, y) => x * y);
};

let output = () => {        
    p('43-1.');
    p(multinomialCoefficient(7, 2, 1, 4));
    p('43-2.');
    p(multinomialCoefficient(7, 1, 3, 4));
    p('43-3.');
    p(multinomialCoefficient(6, 1, 2, 3));
    p('43-4.');
    p(multinomialCoefficient(6, 2, 2, 1, 1));
    p('44.');
    p(multinomialCoefficient(6, 2, 4, 0) * Math.pow(-2, 4))
    p(multinomialCoefficient(6, 2, 1, 3) * -2 * Math.pow(5, 3));
    p(multinomialCoefficient(6, 1, 1, 4) * -2 * Math.pow(5, 4));
    p('45.');
    p(multinomialCoefficient(7, 0, 2, 5) * Math.pow(-3, 2) * Math.pow(4, 5) +
      multinomialCoefficient(7, 1, 0, 6) * 1 * Math.pow(4, 6));
    p(multinomialCoefficient(7, 0, 5, 2) * Math.pow(-3, 5) * Math.pow(4, 2) +
      multinomialCoefficient(7, 1, 3, 3) * Math.pow(-3, 3) * Math.pow(4, 3) +
      multinomialCoefficient(7, 2, 1, 4) * Math.pow(-3, 1) * Math.pow(4, 4));
    p(multinomialCoefficient(7, 3, 4, 0) * Math.pow(-3, 4)  +
      multinomialCoefficient(7, 4, 2, 1) * Math.pow(-3, 2) * 4 +
      multinomialCoefficient(7, 5, 0, 2) * Math.pow(4, 2));
    
};

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

output();
43-1.
105
43-2.
35
43-3.
60
43-4.
180
44.
240
-15000
-37500
45.
222208
-404208
6951

0 コメント:

コメントを投稿