Random i,j(横纵座标),看对应位置是否0,不是重新random
解决方案 »
- 基础问题
- JNI调用时,报错:EXCEPTION_ACCESS_VIOLATION__.?
- 分油问题
- java 图片压缩处理(压缩成A4大小,72dpi,黑白)急。。。。。
- 依旧是jasperreports 问题,iReport title段的内容为什么要占用正一页?$F,$P{},V{}的字段如何在java里面给它们赋值?
- 求教:关于子页面和父页面的问题
- 100分求工作流的流程自定义方式
- (100呀)熟悉正则替换的请进:gm、gs、gmi这些是什么意思?(有小例子!)
- 类中的 this 的使用 困惑 求解 ...
- 我9月28日发的帖子怎么不见了呀!!!
- 调查:大家对对象容器学习的总结,谢谢,奉上全部分数100分
- 为什么图片会重叠?
Random r2 = new Random();
array[r1.nextInt(6),r2.nextInt(6)] = 0;
使用nextSetBit 取得 为1 的索引,随机选一个 clear
int num_1 =....// 1的总个数 ,如果没有的话,分布的不会那么平均
int pos_x ,pos_y ;
for( int i = 0; i < a.length ;i ++){
for(int j = 0; j < a[i].length;j++){
if(a[i][j] == 0){
continue;
}
else {
pos_x = i;
pos_y = j;
if(Ran.nextInt(num_1) == 1){//范围内判断等于几都一样 不会影响分布
return;
}
}
}
}
int ran = new Random().Ran.nextInt(num_1);
int num_1 =....// 1的总个数 没有的话 最近根据实际需求 办
int pos_x ,pos_y ;
for( int i = 0; i < a.length ;i ++){
for(int j = 0; j < a[i].length;j++){
if(a[i][j] == 0){
continue;
}
else {
pos_x = i;
pos_y = j;
if(ran == 1){//优化了下 不需要每次循环都产生1个随机数
return a[i][j];
}
}
}
}
return a[pos_x][pos_y];