我试图识别/创建一个函数(在Java中),该函数给我一个非均匀的分布式数字序列。如果我有一个函数说它function f(x), andx>0
将给我一个从0
到的随机数x
。
该函数最适合任何给定的函数x
,下面仅是我想要的示例。
但是,如果我们说x=100
函数f(x)
将返回来自分布式的s nonuni。
我想例如说
0 to 20
约占所有案件的20%。
21 to 50
大约是所有情况的50%。
51 to 70
约占所有案件的20%。
71 to 100
大约是所有情况的10。
总之somting,给我一个数字,如正态分布,并在30-40偷看在这种情况下x
是100
。
http://en.wikipedia.org/wiki/Normal_distribution
(如果需要,我可以使用统一的随机gen作为得分,并且只有一个将从统一结果转换为非均匀结果的函数。)
编辑
我对此问题的最终解决方案是:
/**
* Return a value from [0,1] and mean as 0.3, It give 10% of it is lower
* then 0.1. 5% is higher then 0.8 and 30% is in rang 0.25 to 0.45
*
* @return
*/
public double nextMyGaussian() {
double d = -1000;
while (d < -1.5) {
// RANDOMis Java's normal Random() class.
// The nextGaussian is normal give a value from -5 to +5?
d = RANDOM.nextGaussian() * 1.5;
}
if (d > 3.5d) {
return 1;
}
return ((d + 1.5) / 5);
}
您能编写一个将多个随机数相加后得出1-X范围并取平均值的函数吗?随着n的增加,这将趋于正态分布
看到:
在C / C ++中遵循正态分布生成随机数
我入侵了以下内容:
class CrudeDistribution {
final int TRIALS = 20;
public int getAverageFromDistribution(int upperLimit) {
return getAverageOfRandomTrials(TRIALS, upperLimit);
}
private int getAverageOfRandomTrials(int trials, int upperLimit) {
double d = 0.0;
for (int i=0; i<trials; i++) {
d +=getRandom(upperLimit);
}
return (int) (d /= trials);
}
private int getRandom(int upperLimit) {
return (int) (Math.random()*upperLimit)+1;
}
}
Commons-Math中有一些库可以根据均值和标准差(用于衡量价差)生成分布。在链接中,一些算法可以做到这一点。
寻找相关的2班轮大概是一个有趣的小时:
https://commons.apache.org/math/userguide/distribution.html
问题内容: 我知道如果我使用Java的Random生成器,并使用nextInt生成数字,则数字将均匀分布。但是,如果我使用2个Random实例,并使用两个Random类生成数字,会发生什么。数字是否会均匀分布? 问题答案: 每个实例生成的数字将均匀分布,因此,如果将两个实例生成的随机数序列组合在一起,则它们也应均匀分布。 请注意,即使结果分布是均匀的,您也可能要注意种子,以避免两个生成器的输出之间
本文向大家介绍python随机数分布random均匀分布实例,包括了python随机数分布random均匀分布实例的使用技巧和注意事项,需要的朋友参考一下 因为概率问题,所以需要测试一下python的随机数分布。到底是平均(均匀)分布,还是正态(高斯)分布。 测试代码如下: 测试结果: 结果说明: 平均(均匀)分布。 以上这篇python随机数分布random均匀分布实例就是小编分享给大家的全部内
问题内容: 我有两种代码选择: 选项1 要么: 选项2 我了解这更惯用。我想知道的有效性。 在我将只使用由给定的种子产生的第一个号码。在“ 我选择一个种子”并使用该种子生成数字。IIUC在此用例上保证了随机性。 因此,我的问题是,如果我多次打电话,是否能保证产出分配的均匀性? 问题答案: 我真正的问题是选项1在数学上是否有效。 让我们从选项2开始。所使用的随机数生成器在javadoc中指定如下:
我试图找到一种有效的算法来生成一个给定节点数的简单连通图。类似于:
0.1-0.2:********** 0.2-0.3:******** 0.3-0.4:********* 0.5-0.6:********* 0.6-0.7:********* 0.7-0.8:********* 0.4-0.5:********* 0.5-0.6:********* 0.6-0.7:********* 0.1-0.2:********* 0.2-0.3:********* 0.
问题内容: 我想要一个集合,并且其元素具有与之关联的概率,因此当我从集合中随机选择一个元素时,分布遵循与元素关联的概率。我想在一个非常小的Java应用程序中使用它,该应用程序存储了我要观看的电影列表,因此我可以向我推荐一部随机电影(否则我总是要花几个小时才能挑选一部电影)。对于每部电影,我都希望将向其推荐电影的次数与该电影的推荐次数成反比,该次数与从该列表中为下一个建议中挑选电影的可能性成反比。