获取一个集中在中心的随机数 [英] Get a random number focused on center

查看:14
本文介绍了获取一个集中在中心的随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以得到1-100之间的随机数,并将结果主要保持在40-60范围内?我的意思是,它很少会超出这个范围,但我希望它主要在那个范围内...... JavaScript/jQuery 有可能吗?

Is it possible to get a random number between 1-100 and keep the results mainly within the 40-60 range? I mean, it will go out of that range rarely, but I want it to be mainly within that range... Is it possible with JavaScript/jQuery?

现在我只使用基本的 Math.random() * 100 + 1.

Right now I'm just using the basic Math.random() * 100 + 1.

推荐答案

最简单的方法是生成两个 0-50 的随机数并将它们相加.

The simplest way would be to generate two random numbers from 0-50 and add them together.

这给出了一个偏向 50 的分布,以同样的方式将两个骰子偏向 7.

This gives a distribution biased towards 50, in the same way rolling two dice biases towards 7.

事实上,通过使用更多的骰子",(正如@Falco 建议的那样),您可以更接近钟形曲线:

In fact, by using a larger number of "dice" (as @Falco suggests), you can make a closer approximation to a bell-curve:

function weightedRandom(max, numDice) {
    let num = 0;
    for (let i = 0; i < numDice; i++) {
        num += Math.random() * (max/numDice);
    }    
    return num;
}

JSFiddle:http://jsfiddle.net/797qhcza/1/

这篇关于获取一个集中在中心的随机数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆