有1到100个数字,将这些数字随机放到长度为98的数组中,找出剩余的2个数
4条回答 默认 最新
- qwe_rt 2010-03-24 13:19关注
[code="java"]package test;
import java.util.Random;
public class RandTest {
public static void main(String[] args){
/*
* 可以考虑先把这100个数放在一个数组内,
* 每次随机取一个位置(第一次是1-100,第二次是1-99,...),
* 将该位置的数与最后一个位置(每次都在变化,第一次100,第二次99...)的数对调就可以了。
*/
int[] arr= new int[100];
//初始化数组
for(int i=0;i<=99;i++)
{
arr[i] = i+1;
}
//随机数
Random r = new Random();
//这个for循环,相当如先从100个随机的位置选一个,放在第100个的位置上
//又随机一个0到98的数作为被选的位置号,选一个后,从剩下99个又选一个放在第99的位置上,
//一次类推。
for (int j = 99; j >= 1; j--)
{
//j从最后一个位置减少到第二个位置。
int address = r.nextInt(j);
//j位置和随机生成位置上的数值对换。
int tmp = arr[address];
arr[address] = arr[j];
arr[j] = tmp;
}
//最后,从最后后面位置开始取98个数放入数组
//第一和第二就是剩下的2个数值。//测试输出 for(int k : arr){ System.out.println(k+" "); }
}
}[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
- ¥15 乘性高斯噪声在深度学习网络中的应用
- ¥15 运筹学排序问题中的在线排序
- ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛