JavaScript中的laplace噪声分布

时间:2017-09-17 11:33:00

标签: javascript noise-generator

我想创建一个基于网络的差异隐私演示。为此,我需要一个Laplace噪声分布的JavaScript实现。

我一直无法在JavaScript中找到基本的噪声分布,例如Gaussian。这是令人惊讶的,因为我希望有很多很酷的JavaScript演示,展示分布如何建立,通过绘制绘制,以产生一个漂亮的钟形曲线。

如何在Javascript中生成拉普拉斯噪声分布​​?

1 个答案:

答案 0 :(得分:0)

       function sgn(x) {
            return x < 0 ? -1 : 1;
        }

        // From wikipedia:
        // Lap(X) = mu - b sgn(U) ln (1-2|U|) where U is a random variable between -0.5 and 0.5
        function laplace(mu, b) {
            var U = Math.random() - 0.5;
            return mu - (b * sgn(U) * Math.log(1 - 2* Math.abs(U)));
        }

        function privatize(F,deltaF,epsilon) {
            return F + laplace(0.0, deltaF/epsilon);
        }