如何在一定百分比的时间内生成随机数

Posted

技术标签:

【中文标题】如何在一定百分比的时间内生成随机数【英文标题】:How to generate a random number a certain percentage of time 【发布时间】:2012-01-26 07:36:02 【问题描述】:

我正在尝试生成一个仅占特定百分比的随机数。例如,我想创建一个设置在某个范围(假设为 0-100)之间的数组,但有 10% 的时间我希望选择的随机数乘以 n。我如何能够在 n% 的时间内生成这个“随机”数字?

编辑 我还没有在 Java 中尝试过,我只是在尝试手动写出算法,但我只是被难住了。我将拥有一个包含一个数字的变量,假设这个数字是 3000,并且数组中的随机数将从数字 3000 中扣除,直到它达到 0,但有一定的时间百分比我希望从数组中提取的数字乘以一定百分比的时间。

【问题讨论】:

【参考方案1】:

您可以通过选择 0 到 100 之间的随机数并在该数字小于 10 时触发事件来完成 10% 的操作。因此,请选择您的随机数。然后在 0 到 100 之间选择另一个随机数,如果第二个数小于 10,则将第一个数乘以 n。

【讨论】:

虽然要得到 10% 的时间你最好取一个 0 到 10 之间的随机数,看看是不是 0【参考方案2】:
 public static boolean getRandPercent(int percent) 
    Random rand = new Random();
    return rand.nextInt(100) <= percent;

【讨论】:

以上是关于如何在一定百分比的时间内生成随机数的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中分配真或假的随机对象

如何创建基于百分位的指标图表?

随机森林袋内和节点尺寸

Java如何生成一定范围内的随机数? [复制]

oracle 按百分比提取数据

如何在给定的分钟内以编程方式更新圆形百分比指示器的进度颜色?