@tdurtschi/bug
Version:
Bug is a simulation that models a weevil walking around in an HTML canvas.
55 lines • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalRange = exports.randFromNormalDist = exports.multi = exports.rangeDecimal = exports.range = exports.randBool = exports.randFromWeighted = exports.randChance = exports.randInt = void 0;
exports.randInt = function (min, max) {
return Math.floor(Math.random() * (max - min) + min + 0.49);
};
exports.randChance = function (numerator, denominator) {
return Math.random() < numerator / denominator;
};
exports.randFromWeighted = function (list) {
var total = list.reduce(function (a, b) { return a + b; }, 0);
var result = Math.floor(Math.random() * total) + 1;
for (var i = 0; i < list.length; i++) {
if (list[i] >= result) {
return i;
}
else {
result -= list[i];
}
}
return list.length - 1;
};
exports.randBool = function () { return exports.randInt(0, 1) === 1; };
exports.range = function (mean, variance) {
return Math.floor(Math.random() * variance) + mean - (variance / 2);
};
exports.rangeDecimal = function (mean, variance, places) {
var multiplier = Math.pow(10, places);
return exports.range(mean * multiplier, variance * multiplier) / multiplier;
};
exports.multi = function (times, functionArg) { return function () {
for (var i = 0; i < times - 1; i++) {
functionArg(i);
}
return functionArg(times - 1);
}; };
exports.randFromNormalDist = function () {
var u = 0, v = 0;
while (u === 0)
u = Math.random();
while (v === 0)
v = Math.random();
var num = Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v);
num = num / 10.0 + 0.5;
if (num > 1 || num < 0)
return exports.randFromNormalDist();
return num;
};
exports.normalRange = function (min, max) {
var range = max - min;
var num = (range * exports.randFromNormalDist()) + min;
window.DEBUG && console.log(num);
return Math.floor(num);
};
//# sourceMappingURL=stats.js.map