【问题标题】:Discount Coupons Project-.nextGaussian()优惠券项目-.nextGaussian()
【发布时间】:2012-01-15 16:21:40
【问题描述】:
我正在为我的计算机科学课程做一个作业,在这个作业中,我们必须生成价值在 1000 美元到 5000 美元之间的随机优惠券。我已经完成了大部分工作,但我们的老师希望我们使用 .nextGaussian 使其更有可能发放 1000 美元的优惠券而不是 5000 美元的优惠券。关于我将如何解决这个问题的任何建议?我查过 .nextGaussian 但我似乎无法让它工作。任何建议或帮助将不胜感激。如果这很重要,我们将使用 Bluej(Java 是编程语言)作为环境。
【问题讨论】:
标签:
java
random
statistics
【解决方案1】:
nextGaussian 99% 的结果将介于 -3 和 3 之间。所以你可能想要
- 取绝对值。
- 乘以大数,大约 5000/3。
你会有很多介于 0 到 1000 之间的结果,不知道如何处理这些结果。可能会忽略他们然后再去?希望这会让你开始。请注意,有些结果会大于 5000,请务必忽略这些并重新开始。
编辑添加
我昨晚回答后大约一分钟,意识到了一个更好的方法。
- 取绝对值。您现在有 0...infinity 范围内的数字,但主要在 0...3 范围内
- 乘以 4000/3。数字现在主要在 0...4000 范围内
- 加 1000。数字现在主要在 1000...5000 范围内。
- 在数量超过 5000 的极少数情况下,请重试。