【问题标题】:Using Random class to continue adding a random digit to a given number in Java使用 Random 类继续向 Java 中的给定数字添加随机数字
【发布时间】:2017-11-01 16:45:36
【问题描述】:

给定一个整数 234,我将如何使用 Random 对象来获取这个数字并只添加一个随机数字而不使其成为字符串。所以在这种情况下,目标是返回一个有 4 位数字的数字,最后一位是随机的。因此,例如下一个数字可能是 2347。然后我想取这个数字并对 5 位数字做同样的事情,例如 23471。我知道我可以乘以 10 以将数字计数增加 1,但这不会是随机的。我知道的 Random 类的唯一方法是 nextInt(int n) 和 nextDouble()。

Random generator = new Random();
int gameNum = 234;
public static int UpdateGameNum(int gameNum, Random)
{

【问题讨论】:

  • 你离得很近。首先乘以十。然后添加一个从 0 到 9 的随机数。重复 n 次以添加 n 数字。
  • 为什么乘以 10 并添加一个随机数字不是随机的?
  • 取一个0到9之间的随机数然后看stackoverflow.com/a/13268944/6722100

标签: java random


【解决方案1】:

gameNum = gameNum * 10 + generator.nextInt(10) 会这样做。

+ 的第二个参数是 0 到 9 之间的随机数)。

如果要支持负数gameNum,那就用更复杂的

gameNum = (gameNum >= 0 ? 1 : -1) * (Math.abs(gameNum) * 10 + generator.nextInt(10));

它有效地去除符号,执行随机数的连接,然后重新引入它。

【讨论】:

    【解决方案2】:

    您不需要将 Random 实例作为参数传递给 updateGameNum()

    只需将getNum 与 10 相乘,然后通过随机选择从 (0 - 9) 中添加一个数字。

    Random generator = new Random();
    int gameNum = 234;
    public static int UpdateGameNum(int gameNum)
    {
        return ( gameNum *10 ) + generator.nextInt(10);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多