Jon*_*nyH 6 java random numbers generator
我目前正在使用Java的RNG Random r = new Random(),并在while循环中生成0到5之间的新整数.
while (someBoolean == false) {
int i = r.nextInt(6);
....
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是从范围中删除一个数字(例如,4),以便RNG仍然生成0到5之间的新数字,不包括其中一个值.
我目前最好的选择是:
while (someBoolean == false) {
int i = r.nextInt(6);
if (i == removedInt) { continue; }
....
}
Run Code Online (Sandbox Code Playgroud)
但是我担心这可能导致我的代码长时间运行,其中RNG不断返回我不想要的数字.
[ 为清楚起见; 返回的数字是Connect4网格或2D int数组中的列.该方法是随机地将列移动到列中,直到列填满为止,此时我不再希望能够在该列中播放.]
任何帮助赞赏:)
ArrayList<Integer> myInts = new ArrayList<Integer>();
myInts.add(1);
myInts.add(2);
myInts.add(3);
myInts.add(4);
int i = myInts.get(r.nextInt(myInts.size())); // 1,2,3,4
myInts.remove(3);
int j = myInts.get(r.nextInt(myInts.size())); // 1,2,4
Run Code Online (Sandbox Code Playgroud)
该代码从允许的整数列表中选择随机条目。
PS 请注意,如果您有很大的数字范围,那么创建一个包含数千个整数的 ArrayList 可能不是最好的主意。
| 归档时间: |
|
| 查看次数: |
1626 次 |
| 最近记录: |