当前位置: 首页 > 知识库问答 >
问题:

来自最小值和最大值之间的指数分布的随机整数

苏彦君
2023-03-14

我想在最小到最大的间隔上生成随机整数。对于numpy中的均匀分布:

numpy.random.randint(min,max,n)

这正是我想要的。

然而,我现在想给随机数的分布一个指数偏差。对此有许多建议,例如伪随机数发生器-指数分布以及numpy函数< code > numpy . random . random state . Exponential ,但是这些建议没有解决如何将分布约束到最小值和最大值之间的整数。我不知道如何做到这一点,同时仍然确保随机分布。

共有2个答案

蔡楚
2023-03-14

也许您可以尝试将所有偏差相加。然后生成整数j=j的偏差/总偏差的概率。您可以使用蒙特卡罗模拟来实现这一点。

亢嘉茂
2023-03-14

指数分布是连续分布。您可能想要的是其离散等价物,即几何分布。Numpy 的实现生成严格的正整数,即 1,2,3,...,因此您需要添加 min-1 来移动它,然后通过拒绝/丢弃结果来截断

没有拒绝也可以做到这一点,但是你必须创建自己的反转,确定超过max的概率,并生成介于0和该概率之间的均匀值来提供给你的反转算法。拒绝更简单,尽管效率较低。

 类似资料:
  • 问题内容: 我正在寻找python中整数的最小值和最大值。例如,在Java中,我们有和。python中是否有类似的东西? 问题答案: Python 3 在Python 3中,此问题不适用。普通int类型是无界的。 但是,你实际上可能正在寻找有关当前解释器的字长的信息,在大多数情况下,该信息将与机器的字长相同。该信息在Python 3中仍以形式提供,这是一个有符号的单词可以表示的最大值。等效地,它是

  • 本文向大家介绍使用递归实现指定最小值和最大值之间的所有整数求和相关面试题,主要包含被问及使用递归实现指定最小值和最大值之间的所有整数求和时的应答技巧和注意事项,需要的朋友参考一下 循环 function sumNumber(min, max) { let result = 0 for (let i = min+1; i<max;i++){ result += i } return result }

  • 主要内容:普通算法,分治算法程序中,我们经常使用数组(列表)存储给定的线性序列(例如 {1,2,3,4}),那么如何查找数组(序列)中的最大值或者最小值呢? 查找数组(序列)中最大值或最小值的算法有很多,接下来我们以 {3,7,2,1} 序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助 分治算法解决。 普通算法 普通算法的解决思路是:创建两个变量 max 和 min 分别记录数组中的最大值和最小值,它们的初始值都

  • 解决了 我想问用户他想输入多少个整数,然后读取所有数字,同时跟踪他们输入的最大和最小数字。然后打印最大和最小数字。 我正在考虑将最大值和最小值设置为第一个输入的数字,然后在for循环中读取下一个数字,并使用更大/更小的数字更改最大值和最低值。但是,它只打印用户输入的第一个数字。有人能帮我吗?非常感谢。 代码:

  • 问题内容: 我的代码没有给出错误,但是没有显示最小值和最大值。代码是: 我是否需要system.out.println()来显示它,否则返回应该起作用吗? 问题答案: 您正在调用方法,但不使用返回的值。

  • 这是一个非常基本的算法(不能再简单了),但我被难住了。我们有一个元素数组,我们必须确定最小值和最大值。 通常的方法是遍历数组,找出最小值和最大值,即2n比较。 稍微有效的方法是首先对数组的连续元素进行比较,以确定任意两个元素的最大值和最小值(N/2比较)。我们现在有n/2 min和n/2 max元素。现在我们可以在n/2+n/2+n/2(前一步)=3/2*n或1.5n中得到最终的max和min 那