内容简介:http://stackoverflow.com/questions/29325069/how-to-generate-random-numbers-biased-towards-one-value-in-a-range
说,如果我想在最小和最大值之间生成一个无偏差的随机数,我会做:
var rand = function(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
但是,如果我想在最小和最大值之间产生一个随机数,但是更偏向于min和max之间的值N到D度?最好用概率曲线来说明它:
这是一种方法:
>获取最小 – 最大范围内的随机数
>获取随机的归一化混合值
>随机混合随机混合偏差
即,伪:
<b>Variables:</b> min = 0 max = 100 bias = 67 (N) influence = 1 (D) [0.0, 1.0] <b>Formula:</b> rnd = random() x (max - min) + min mix = random() x influence <b>value</b> = rnd x (1 - mix) + bias x mix
混合因子可以用次要因子来减少,以设定它应该影响多少(即因子为[0,1]的混合因子).
演示
这将绘制一个有偏差的随机范围.上带有1作为影响,底部0.75影响.偏差在此范围内设定为2/3位置.
底部乐队没有(故意的)偏见进行比较.
var ctx = document.querySelector("canvas").getContext("2d");
ctx.fillStyle = "red"; ctx.fillRect(399,0,2,110); // draw bias target
ctx.fillStyle = "rgba(0,0,0,0.07)";
function getRndBias(min, max, bias, influence) {
var rnd = Math.random() * (max - min) + min, // random in range
mix = Math.random() * influence; // random mixer
return rnd * (1 - mix) + bias * mix; // mix full range and bias
}
// plot biased result
(function loop() {
for(var i = 0; i < 5; i++) { // just sub-frames (speedier plot)
ctx.fillRect( getRndBias(0, 600, 400, 1.00), 4, 2, 50);
ctx.fillRect( getRndBias(0, 600, 400, 0.75), 55, 2, 50);
ctx.fillRect( Math.random() * 600 ,115, 2, 35);
}
requestAnimationFrame(loop);
})();
<canvas width=600></canvas>
http://stackoverflow.com/questions/29325069/how-to-generate-random-numbers-biased-towards-one-value-in-a-range
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- identityHashCode与偏向锁
- 死磕Synchronized底层实现--偏向锁
- Java:锁的四中状态:无锁,偏向锁,轻量级锁,重量级锁
- 区块链随机数的实现:墨客随机数子链RandDrop(强随机数和真随机数)_作者陈小虎
- Java随机数探秘
- Java 随机数探秘
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
iBATIS实战
(加)Clinton Begin、(加)Brandon Goodin、(加)Larry Meadors / 叶俊 / 人民邮电出版社 / 2008-5 / 45.00元
《图灵程序设计丛书•Java系列•iBATIS in Action iBATIS实战》是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《图灵程序设计丛书•Java系列•iBATIS in Action iBATIS实战》的最后给出了一个设计优雅、层次清晰的示例程序JGa......一起来看看 《iBATIS实战》 这本书的介绍吧!