dataviewjs-chart-obfs.js
· 657 B · JavaScript
原始文件
// 用 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);
1 | // 用 Box-Muller 变换生成符合高斯分布的随机数 |
2 | function gaussianRandom(mean, stddev) { |
3 | let u1 = Math.random(); |
4 | let u2 = Math.random(); |
5 | let z0 = Math.sqrt(-2.0 * Math.log(u1)) * Math.cos(2.0 * Math.PI * u2); |
6 | return z0 * stddev + mean; // 使用均值和标准差转换为目标分布 |
7 | } |
8 | |
9 | const times = []; |
10 | for (let page of window.pages) { |
11 | let sleepValue = page['睡眠']; |
12 | // 添加 ±0.5 的高斯噪声,使用 0.25 的标准差 |
13 | // 68.3%~99.7% 对应 0.5~0.1667 |
14 | let noise = gaussianRandom(0, 0.25); |
15 | times.push(sleepValue + noise); |
16 | } |
17 | |
18 | const chartData = { … }; |
19 | window.renderChart(chartData, this.container); |