学習環境/開発環境
- 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(数学的帰納法と除法の定理)、問題5.を取り組んでみる。
問題5.
JavaScript で確認。
HTML5
<label for="x0">x = </label>
<input id="x0" type="number" value="5">
<label for="y0">y = </label>
<input id="y0" type="number" value="10">
<label for="n0">n = </label>
<input id="n0" type="number" min="0" step="1" value="2">
<div id="output0"></div>
<script src="array.js"></script>
<script src="sample5.js"></script>
JavaScript
コード(Emacs)
(function () {
var input_x = document.querySelector('#x0'),
input_y = document.querySelector('#y0'),
input_n = document.querySelector('#n0'),
inputs = [input_n, input_x, input_y],
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,
x = parseFloat(input_x.value),
y = parseFloat(input_y.value),
n = parseInt(input_n.value, 10);
left = Math.pow(x + y, n);
right = Array.range(n + 1)
.map(function(r) {
return combination(n, r) *
Math.pow(x, n - r) *
Math.pow(y, r);
})
.sum();
div_output.innerHTML =
'左辺 = ' + left + nl +
'右辺 = ' + right + nl +
'左辺 = 右辺 ' + (left === right) + nl +
'|左辺 - 右辺| = ' + Math.abs(left - right) + nl;
};
inputs.forEach(function (input) {
input.onchange = output;
});
output();
}());
0 コメント:
コメントを投稿