JAVA题,使用java.lang.Math类,生成50个0到99之间的不重复的随机整数,并按降序的顺序输出这些整数
使用java.lang.Math类,生成50个0到99之间的不重复的随机整数,并按降序的顺序输出这些整数。提示:Math.Random()生成0~1的随机数,Math.R...
使用java.lang.Math类,生成50个0到99之间的不重复的随机整数,并按降序的顺序输出这些整数。
提示:Math.Random()生成0~1的随机数,Math.Round(double)对含有小数的实数取整。麻烦写详细一些~ 展开
提示:Math.Random()生成0~1的随机数,Math.Round(double)对含有小数的实数取整。麻烦写详细一些~ 展开
3个回答
展开全部
分两步呗。
第一步: 生成随机数
第二步:排序
这里只说第一步的内容,第二步,我想你的算法书中都有说吧。
先说生成一个0-1之间的随机数很容易吧?
double k = Math.Random();
而获得一个0-100间的呢?
没错,乘以一百。
即:
k = k *100;
而这个时候显然,k有可能是个小数,没关系:
k = Math.Round(k);
这时候,咱们已经取到第一个随机数了,是不是重复50次就可以了呢?
看题目要求,这里需要不重复的,怎么办呢?
显然,在生成第n个后,检查下前n-1个是否有与这个相同的,如果没有,那么这个数就被认为是第n个随机数,并开始计算第n+1个。如果存在,那么这个数就放弃,重新获取一个不就可以了么?
什么?具体实现?自己来吧~~
第一步: 生成随机数
第二步:排序
这里只说第一步的内容,第二步,我想你的算法书中都有说吧。
先说生成一个0-1之间的随机数很容易吧?
double k = Math.Random();
而获得一个0-100间的呢?
没错,乘以一百。
即:
k = k *100;
而这个时候显然,k有可能是个小数,没关系:
k = Math.Round(k);
这时候,咱们已经取到第一个随机数了,是不是重复50次就可以了呢?
看题目要求,这里需要不重复的,怎么办呢?
显然,在生成第n个后,检查下前n-1个是否有与这个相同的,如果没有,那么这个数就被认为是第n个随机数,并开始计算第n+1个。如果存在,那么这个数就放弃,重新获取一个不就可以了么?
什么?具体实现?自己来吧~~
展开全部
List<Long> listlong = new ArrayList<Long>();
for (int i = 0; i < 50; i++) {
t:
while (true){
long temp = Math.round(Math.random()*100);
if(listlong.contains(temp)) continue t ;
else {
listlong.add(temp);
break ;
}
}
}
Collections.sort(listlong);
for(Long l : listlong){
System.out.println(l);
}
Collections sort 要 调了 api 直接 升序排列,你 写个类似 冒泡 排序的算法 排个序 就OK 了
for (int i = 0; i < 50; i++) {
t:
while (true){
long temp = Math.round(Math.random()*100);
if(listlong.contains(temp)) continue t ;
else {
listlong.add(temp);
break ;
}
}
}
Collections.sort(listlong);
for(Long l : listlong){
System.out.println(l);
}
Collections sort 要 调了 api 直接 升序排列,你 写个类似 冒泡 排序的算法 排个序 就OK 了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个可能时间长一点 你稍等!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询