我知道在JavaScript中可以像这样生成随机整数:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
但我想要的是一组偏向特定值的随机数。
例如,如果我的特定中心值为200,我希望得到一组具有很大范围但大部分在200左右的随机数。希望有一个函数可以实现:
biasedRandom(center, biasedness)
我知道在JavaScript中可以像这样生成随机整数:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
但我想要的是一组偏向特定值的随机数。
例如,如果我的特定中心值为200,我希望得到一组具有很大范围但大部分在200左右的随机数。希望有一个函数可以实现:
biasedRandom(center, biasedness)
v
和mean
会影响生成的数字。在您的实际代码中,您不需要包含plotly库。
// Standard Normal variate using Box-Muller transform.
function randn_bm() {
var u = 0, v = 0;
while(u === 0) u = Math.random(); //Converting [0,1) to (0,1)
while(v === 0) v = Math.random();
return Math.sqrt( -2.0 * Math.log( u ) ) * Math.cos( 2.0 * Math.PI * v );
}
//generate array
// number of points
let n = 50;
// variance factor
let v = 1;
// mean
let mean = 200;
let numbers = []
for (let i=0; i<n;i++){
numbers.push(randn_bm())
}
// scale and shift
numbers = numbers.map( function (number){ return number*v + mean})
// THIS PURELY FOR PLOTTING
var trace = {
x: numbers,
type: 'histogram',
};
var data = [trace];
Plotly.newPlot('myDiv', data);
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id="myDiv"></div>
biasedRandom(center, biasedness)
吗? - nipunasudha