【发布时间】:2019-04-02 21:43:49
【问题描述】:
我正在尝试在一天中的每个小时内不均匀地分配负载,并在中午有更多可用人员时进行高峰处理。基本上,我想要一个与简单的n / 24 = hourly load 相对的任务的“正态分布”。
目标是大部分的工作需要在中午的时候下发,早上和深夜的工作较少。
据我所知,这是一条曲线。
// Number per day
const numberPerDay = 600;
const numberPerHour = numberPerDay / 24;
let total = 0;
for (let hour = 1; hour < 24; hour++) {
// Normal Distribution should be higher at 12pm / noon
// This Inverse bell-curve is higher at 1am and 11pm
const max = Math.min(24 - hour, hour);
const min = Math.max(hour, 24 - hour);
const penalty = Math.max(1, Math.abs(max - min));
const percentage = Math.floor(100 * ((penalty - 1) / (24 - 1)));
const number = Math.floor(numberPerHour - (numberPerHour * percentage / 100));
console.log(`hour: ${hour}, penalty: ${penalty}, number: ${number}`);
total += number;
}
console.log('Expected for today:', numberPerDay);
console.log('Actual for today:', total);
直播jsfiddle.
这会产生这样的结果:
【问题讨论】:
-
对于正态分布,您需要公式中的方差和异常分布。您的意思是数学
normal distribution的真正含义还是您正试图找到类似于上面曲线的东西?
标签: javascript math normal-distribution