使用 Java 中的种子随机访问矩阵
Random acces to matrix using seed in Java
如何使用随机(带种子)访问 matrix
(int[][] matrix
)?
我想随机打印我的 matrix
。
如何使用seed
和random
方法?能举个例子吗?
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
}
}
如何使用随机(带种子)访问 matrix
(int[][] matrix
)?
我想随机打印我的 matrix
。
如何使用seed
和random
方法?能举个例子吗?
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
}
}