使用 Java 中的种子随机访问矩阵

Random acces to matrix using seed in Java

如何使用随机(带种子)访问 matrix (int[][] matrix)?

我想随机打印我的 matrix

如何使用seedrandom方法?能举个例子吗?

Seed 很重要。 我只想写一次。

int[][] matrix = ini();
 // print matrix randomly using seed...?

设置随机实例的种子

Random rand = new Random(seed);

你可以通过调用nextInt方法得到一个包含的随机值...

int row = rand.nextInt(matrix.length);

...并使用这些值访问矩阵:

int val = matrix[row][otherRandomValue];

要随机打印矩阵,您需要遍历行和列的长度。为避免重复值,您可以保留一组索引(例如使用 java.awt.Point class)并检查此集合以查看该值是否已被使用

Set<Point> uniques = new HashSet<Point>();

for ( int i = 0; i < matrix.length; i++ ){//loop over rows
    for ( int j = 0; j < matrix[i].length; j++ ){
        Point p = new Point(rand.nextInt(matrix.length), rand.nextInt(matrix[i].length));
        while ( uniques.contains(p) ){
            p = new Point(rand.nextInt(matrix.length), rand.nextInt(matrix[i].length));
        }
        uniques.add(p);
        //p.x and p.y contain the indexes
    }
}