当前位置: 首页 > 面试题库 >

生成非均匀随机数

东方夕
2023-03-14
问题内容

您能告诉我任何生成非均匀随机数的方法吗?
我正在使用Java,但是代码示例可以随心所欲。

一种方法是通过将两个统一的随机数加在一起(即滚动2个骰子)来创建歪斜分布。


问题答案:

您想要什么分布的偏差?

这是一种始终有效的技术,但并不总是最有效的。累积扰动函数P(x)给出值低于x的时间的分数。因此,在x的最小可能值处P(x)= 0,在x的最大可能值处P(x)= 1。每个分布都有一个唯一的CDF,该CDF以P(x)从0上升到1的方式编码变形的所有属性。如果y在间隔[0,1]上是均匀偏差,则x满足P(x )= y将根据您的分布情况而分配。为了使这项工作对等,您只需要一种计算分布的P(x)倒数的方法

所述Meta.Numerics库定义了大量的常用distrubtions的(例如正常的,对数正态的,指数的,卡方等),并具有用于计算每个的CDF(Distribution.LeftProbability)和逆CDF(Distribution.InverseLeftProbability)函数。



 类似资料:
  • 我试图找到一种有效的算法来生成一个给定节点数的简单连通图。类似于:

  • 这个问题以前也有人问过,但我从来没有真正看到过好的答案。 > 我想生成8个和为0.5的随机数。 我希望每个数字都是从一个均匀分布中随机选择的(即下面的简单函数将不起作用,因为数字将不是均匀分布的)。 代码应该是可推广的,这样您就可以生成N个和M(其中M是正浮点)的均匀随机数。如果可能的话,能否也请你解释一下(或用一个图表示)为什么你的解会在适当的范围内均匀地产生随机数? 失手的相关问题: 在pyt

  • 问题内容: 我知道如果我使用Java的Random生成器,并使用nextInt生成数字,则数字将均匀分布。但是,如果我使用2个Random实例,并使用两个Random类生成数字,会发生什么。数字是否会均匀分布? 问题答案: 每个实例生成的数字将均匀分布,因此,如果将两个实例生成的随机数序列组合在一起,则它们也应均匀分布。 请注意,即使结果分布是均匀的,您也可能要注意种子,以避免两个生成器的输出之间

  • 如何在一定范围内生成安全的统一随机数?范围可能在0到100之间。(上限不是2的幂)。 <代码>java。安全SecureRandom似乎提供了范围0。。2^n。

  • 问题内容: 我试图识别/创建一个函数(在Java中),该函数给我一个非均匀的分布式数字序列。如果我有一个函数说它将给我一个从到的随机数。 该函数最适合任何给定的函数,下面仅是我想要的示例。 但是,如果我们说函数将返回来自分布式的s nonuni。 我想例如说 约占所有案件的20%。 大约是所有情况的50%。 约占所有案件的20%。 大约是所有情况的10。 总之somting,给我一个数字,如正态分

  • 我试图把一些代码,将做同样的Python, Numpy.random.选择 关键部分是: 与a中的每个条目相关的概率。如果没有给定,则样本假定a中所有条目的均匀分布。 一些测试代码: 这将产生以下输出: 有时候。 这里有一个分布,它是部分随机的,但也有结构。 我想在C#中实现这一点,老实说,我不确定是否有有效的方法来实现。 大约4年前,有一个很好的问题被提出:模仿Python的随机性。选择。网 因