// 用 Box-Muller 变换生成符合高斯分布的随机数 function gaussianRandom(mean, stddev) { let u1 = Math.random(); let u2 = Math.random(); let z0 = Math.sqrt(-2.0 * Math.log(u1)) * Math.cos(2.0 * Math.PI * u2); return z0 * stddev + mean; // 使用均值和标准差转换为目标分布 } const times = []; for (let page of window.pages) { let sleepValue = page['睡眠']; // 添加 ±0.5 的高斯噪声,使用 0.25 的标准差 // 68.3%~99.7% 对应 0.5~0.1667 let noise = gaussianRandom(0, 0.25); times.push(sleepValue + noise); } const chartData = { … }; window.renderChart(chartData, this.container);