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)对含有小数的实数取整。麻烦写详细一些~
展开
 我来答
人如醉oM
2013-06-23 · TA获得超过324个赞
知道小有建树答主
回答量:460
采纳率:37%
帮助的人:223万
展开全部
分两步呗。

第一步: 生成随机数
第二步:排序
这里只说第一步的内容,第二步,我想你的算法书中都有说吧。
先说生成一个0-1之间的随机数很容易吧?
double k = Math.Random();
而获得一个0-100间的呢?
没错,乘以一百。
即:
k = k *100;
而这个时候显然,k有可能是个小数,没关系:
k = Math.Round(k);
这时候,咱们已经取到第一个随机数了,是不是重复50次就可以了呢?
看题目要求,这里需要不重复的,怎么办呢?
显然,在生成第n个后,检查下前n-1个是否有与这个相同的,如果没有,那么这个数就被认为是第n个随机数,并开始计算第n+1个。如果存在,那么这个数就放弃,重新获取一个不就可以了么?
什么?具体实现?自己来吧~~
随风飘动_t
2013-06-23
知道答主
回答量:41
采纳率:0%
帮助的人:19.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 了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
关哥说电影
2013-06-23 · 超过10用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:8.4万
展开全部
这个可能时间长一点 你稍等!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式