Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
110
Task/Statistics-Basic/Jsish/statistics-basic.jsish
Normal file
110
Task/Statistics-Basic/Jsish/statistics-basic.jsish
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
#!/usr/bin/env jsish
|
||||
"use strict";
|
||||
|
||||
function statisticsBasic(args:array|string=void, conf:object=void) {
|
||||
var options = { // Rosetta Code, Statistics/Basic
|
||||
rootdir :'', // Root directory.
|
||||
samples : 0 // Set sample size from options
|
||||
};
|
||||
var self = { };
|
||||
parseOpts(self, options, conf);
|
||||
|
||||
function generateStats(n:number):object {
|
||||
var i, sum = 0, sum2 = 0;
|
||||
var hist = new Array(10);
|
||||
hist.fill(0);
|
||||
for (i = 0; i < n; i++) {
|
||||
var r = Math.random();
|
||||
sum += r;
|
||||
sum2 += r*r;
|
||||
hist[Math.floor((r*10))] += 1;
|
||||
}
|
||||
var mean = sum/n;
|
||||
var stddev = Math.sqrt((sum2 / n) - mean*mean);
|
||||
var obj = {n:n, sum:sum, mean:mean, stddev:stddev};
|
||||
return {n:n, sum:sum, mean:mean, stddev:stddev, hist:hist};
|
||||
}
|
||||
|
||||
function reportStats(summary:object):void {
|
||||
printf("Samples: %d, mean: %f, stddev: %f\n", summary.n, summary.mean, summary.stddev);
|
||||
var max = Math.max.apply(summary, summary.hist);
|
||||
for (var i = 0; i < 10; i++) {
|
||||
printf("%3.1f+ %-70s %5d\n", i * 0.1, 'X'.repeat(70 * summary.hist[i] / max), summary.hist[i]);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function main() {
|
||||
LogTest('Starting', args);
|
||||
switch (typeof(args)) {
|
||||
case 'string': args = [args]; break;
|
||||
case 'array': break;
|
||||
default: args = [];
|
||||
}
|
||||
if (self.rootdir === '')
|
||||
self.rootdir=Info.scriptDir();
|
||||
|
||||
Math.srand(0);
|
||||
if (self.samples > 0) reportStats(generateStats(self.samples));
|
||||
else if (args[0] && parseInt(args[0])) reportStats(generateStats(parseInt(args[0])));
|
||||
else for (var n of [100, 1000, 10000]) reportStats(generateStats(n));
|
||||
|
||||
debugger;
|
||||
LogDebug('Done');
|
||||
return 0;
|
||||
}
|
||||
|
||||
return main();
|
||||
}
|
||||
|
||||
provide(statisticsBasic, 1);
|
||||
|
||||
if (isMain()) {
|
||||
if (!Interp.conf('unitTest'))
|
||||
return runModule(statisticsBasic);
|
||||
|
||||
;' statisticsBasic unit-test';
|
||||
; statisticsBasic();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
=!EXPECTSTART!=
|
||||
' statisticsBasic unit-test'
|
||||
statisticsBasic() ==> Samples: 100, mean: 0.534517, stddev: 0.287124
|
||||
0.0+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 8
|
||||
0.1+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 11
|
||||
0.2+ XXXXXXXXXXXXXXXXXXXXXXXXXX 6
|
||||
0.3+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 10
|
||||
0.4+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 10
|
||||
0.5+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 11
|
||||
0.6+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 8
|
||||
0.7+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 16
|
||||
0.8+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7
|
||||
0.9+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 13
|
||||
Samples: 1000, mean: 0.490335, stddev: 0.286562
|
||||
0.0+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 98
|
||||
0.1+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 122
|
||||
0.2+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 85
|
||||
0.3+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 106
|
||||
0.4+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 105
|
||||
0.5+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 101
|
||||
0.6+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 93
|
||||
0.7+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 106
|
||||
0.8+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 98
|
||||
0.9+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 86
|
||||
Samples: 10000, mean: 0.499492, stddev: 0.287689
|
||||
0.0+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 969
|
||||
0.1+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 992
|
||||
0.2+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 1067
|
||||
0.3+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 1011
|
||||
0.4+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 973
|
||||
0.5+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 1031
|
||||
0.6+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 971
|
||||
0.7+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 999
|
||||
0.8+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 991
|
||||
0.9+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 996
|
||||
0
|
||||
=!EXPECTEND!=
|
||||
*/
|
||||
Loading…
Add table
Add a link
Reference in a new issue