2017年4月10日月曜日

開発環境

The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版(Donald E. Knuth (著)、青木 孝 (著)、筧 一彦 (著)、鈴木 健一 (著)、長尾 高弘 (著)、有澤 誠 (その他)、和田 英一 (その他)、ドワンゴ)の第1章(基礎概念)、1.1(アルゴリズム)、演習問題6を取り組んでみる。

コード(Emacs)

HTML5

n = <input id="n0" type="number" min="1" step="1" value="5">
<br>
<button id="run0">run</button>
<button id="clear0">clear</button>
<pre id="output0"></pre>

<script src="sample5.js"></script>

JavaScript

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

let e1count = (m, n) => {
    let count = 0;
    let iter = (m, n) => {
        // e1.
        let r = m % n;
        count += 1;
        // e2.
        if (r === 0) {
            return count;;
        }
        // e3.
        m = n;
        n = r;
        return iter(m, n);
    };
    return iter(m, n);
};
let tn = (n) => {
    let result = []
    
    for (let m = 1; m <= n; m += 1) {
        result.push(e1count(m, n));
    }
    
    return result;
};

let output = () => {
    let n = parseInt(input0.value, 10),
        nums = tn(n);
    
    pre0.textContent +=
        `T_${n} = ${nums.reduce((prev, x) => prev + x, 0) / n}\n` +
        `[${nums}]\n`;
};
    

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

output();
n =













						

0 コメント:

コメントを投稿