首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >称重数字发生器

称重数字发生器
EN

Stack Overflow用户
提问于 2015-06-28 01:40:33
回答 3查看 122关注 0票数 2

我一直在寻找,也发现了类似的话题,但我无法理解它们,也不知道如何应用它们。

简单:我只想在1100之间生成一个数字

  • 数字130的概率应该是60%。
  • 数字3160的概率应该是35%。
  • 数字61100的概率应该是5%。
EN

回答 3

Stack Overflow用户

发布于 2015-06-28 01:52:55

在您的范围内获取数字

首先,在3个间隔内生成3个随机数。

1: 1-30

2: 31-60

3: 61-100

生成概率数

接下来,生成一个数字1-100.如果数字为1-60,选择第一步中的第一个随机数,如果为61-95,则执行第二个选项,如果为96-100,则选择第三个。

票数 1
EN

Stack Overflow用户

发布于 2015-06-28 01:55:11

这听起来像是家庭作业问题,所以我不会提供代码,但下面是一个简单算法的描述:

生成1到100之间的随机数。让我们调用这个X.X来确定如何生成最终结果:

如果X介于1到60之间,生成一个介于1到30之间的随机数作为最终结果。

如果X在61到95之间,生成31到60之间的随机数作为最终结果。

如果X介于96到100之间,则生成61到100之间的随机数作为最终结果。

您可以看到,对于所需的每个加权数,这需要两个随机数代。它实际上可以简化为一个随机数生成,这是留给您的练习。

FYI,如何在一个范围内生成一个随机数,可以在这里找到:How do I generate random integers within a specific range in Java?

票数 1
EN

Stack Overflow用户

发布于 2015-06-28 01:51:33

对我来说最简单的方法就是创作四幅画。第一个是数字1-100。第二个数字是1-30,第三个数字是31-60,第四个数字是61-100。把第一个随机数看作百分之一。如果是1-60,那么继续运行第二个随机,如果是60-95,运行第三个随机,如果是95-100,运行第四个随机。还有其他方法使它更短,但我认为这是最容易理解的。

用以下方式创建随机数1-100:(int)(Math.random()*100)+1,其余的应该只是条件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31095333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档