###前提・実現したいこと
今初めてのJavaScriptという本を読んでプログラムの勉強をしています。
本に書いているコードで何を示しているのかわからない名前のkeyががあったのでここに質問します。
###発生している問題・エラーメッセージ
下のコードのM2というものが何を指しているかわからない(meanは平均、varianceは分散、stdevは標準偏差を指していることは分かりました。)
###該当のソースコード
javascript
1// Donald Knuth's algorithm for calculating variance: 2// Art of Computer Programming, Vol. 2: Seminumerical Algorithms, 3rd Ed., 1998 3const data = [3, 5, 7, 9, 11, 13]; 4const stats = data.reduce((a, x) => { 5 a.N++; 6 let delta = x - a.mean; 7 a.mean += delta/a.N; 8 a.M2 += delta*(x - a.mean); 9 return a; 10}, { N: 0, mean: 0, M2: 0 }); 11if(stats.N > 2) { 12 stats.variance = stats.M2 / (stats.N - 1); 13 stats.stdev = Math.sqrt(stats.variance); 14} 15console.log(stats); 16/* 結果 17{ N: 7, 18 mean: 6.828571428571428, 19 M2: 63.41428571428572, 20 variance: 10.56904761904762, 21 stdev: 3.2510071699471257 } 22*/
###試したこと
webでDonald Knuth's algorithm for calculating varianceを検索しましたが英語のサイトが出てきて読めませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
初めてのJavaScript 156ページ
回答1件
あなたの回答
tips
プレビュー