java - 在 Java 中使用特定种子作为随机数生成器

标签 java random seed random-seed

我知道之前已经有很多关于种子的问题,我已经浏览了很多,但仍在挣扎,如果这看起来重复,抱歉!基本上,我提示用户输入输入值(这将是种子),然后使用该种子生成随机值。我的代码位于两个单独的文件中,但我会尽力为您组织起来。

文件1:

Random generator = new Random();

public RandomWalk(int gridSize){

    gridSize = generator.nextInt();
    this.gridSize = gridSize;
}



public RandomWalk(int gridSize, long seed){
    generator.nextInt();
    this.gridSize = gridSize;
}

文件2:

public static long seed = 0;
int i = 1;
    System.out.println("Enter random seed (0 for no seed): ");
    while (i == 1) {
        seed = scan.nextInt();
        if (!(seed == 0)) {
            if (seed > 0) {
                i++;
                //Generate numbers based on seed entered
            } else {
                System.out.println("You need to enter a positive integer.");
            }
        } else {
            System.out.println("Seed is 0, a random seed will be generated");
            //Make this generate a random seed
            i++;
        }
    }

public static void main(String[] args) {

    getInput();

    RandomWalk walk;
    if (seed==0){
        walk = new RandomWalk(gridSize);
    } else {
        walk = new RandomWalk(gridSize, seed);
    }

    walk.createWalk();

最佳答案

你并没有真正问问题,但我会尝试推断它。是不是您的代码没有按您的预期工作?

我看到的一个问题是,接受种子的 RandomWalk 构造函数永远不会对种子执行任何操作。试试这个:

Random generator;

public RandomWalk(int gridSize){
    generator = new Random();
    gridSize = generator.nextInt();
    this.gridSize = gridSize;
}



public RandomWalk(int gridSize, long seed){
    generator = new Random(seed);
    gridSize = generator.nextInt();
    this.gridSize = gridSize;
}

请注意,种子被传递给 Random 构造函数。此外,对generator.nextInt()的调用是在第二个构造函数中进行的,而不将其返回值分配给gridSize。我认为这可能不是您想要做的。

您可能想看看 Java SDK documentation for Random 。它有 2 个构造函数,一个接受种子参数,另一个基本上为您弥补了一个。

关于java - 在 Java 中使用特定种子作为随机数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22752865/

相关文章:

c - 如何从随机数生成器返回中间位?

recursion - 关于递归什么是种子值?

Java AST 的 Java 安全异常

java - super.paint() 在图像上不可见

java - Facebook 与fragment android 共享对话框

具有非均匀离散密度的随机数

java - 为角色生成随机统计数据,其中高统计数据出现的可能性低于低统计数据

ruby-on-rails - 如何在使用 Ruby on Rails 3 的播种过程中避免验证、回调和 'attr_accessible' 影响?

c# - 如何在 ASP .NET MVC 5 Web 应用程序的 Seed 方法中通过 UserManager 创建 ApplicationUser

java - DOS 子字符串和变量