学習環境/開発環境
- Surface 3 (4G LTE)、Surface 3 タイプ カバー、Surface ペン(端末)
- Windows 10 Pro (OS)
- 数式入力ソフト(TeX, MathML): MathType
- MathML対応ブラウザ: Firefox、Safari
- MathML非対応ブラウザ(Internet Explorer, Google Chrome...)用JavaScript Library: MathJax
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- JavaScript (プログラミング言語)
- JavaScript Library
- Safari(Web browser)
- 参考書籍
- JavaScript 第6版 (David Flanagan(著)、村上 列(翻訳)、オライリージャパン)
- JavaScriptリファレンス 第6版(David Flanagan(著)、木下 哲也(翻訳)、オライリージャパン)
代数系入門 (松坂 和夫(著)、岩波書店)の第1章(整数)、2(数学的帰納法と除法の定理)、問題4.を取り組んでみる。
問題4.
JavaScript で確認。
HTML5
<label for="n0">n = </label>
<input id="n0" type="number" min="1" step="1" value="1">
<label for="r0">r = </label>
<input id="r0" type="number" min="1" step="1" value="1">
<div id="output0"></div>
<script src="array.js"></script>
<script src="sample4.js"></script>
JavaScript
コード(Emacs)
var input_n = document.querySelector('#n0'),
input_r = document.querySelector('#r0'),
inputs = [input_n, input_r],
div_output = document.querySelector('#output0'),
nl = '<br>',
factorial,
combination,
output;
console.log(inputs);
factorial = function (n) {
return Array.range(1, n + 1)
.reduce(function (x, y) {
return x * y;
}, 1);
};
combination = function (n, r) {
return factorial(n) / (factorial(r) * factorial(n - r));
};
output = function () {
var left,
right,
n = parseInt(input_n.value, 10),
r = parseInt(input_r.value, 10);
if (1 <= r && r <= n) {
left = combination(n, r - 1) + combination(n, r);
right = combination(n + 1, r);
div_output.innerHTML =
'左辺 = ' + left + nl +
'右辺 = ' + right + nl +
'左辺 = 右辺 ' + (left === right) + nl +
'|左辺 - 右辺| = ' + Math.abs(left - right) + nl;
}
};
inputs.forEach(function (input) {
input.onchange = output;
});
output();
0 コメント:
コメントを投稿