JAVA中如何产生5个从1到33之间不相同的随机数,在线等

 我来答
与梦前行
2014-03-03 · TA获得超过107个赞
知道答主
回答量:48
采纳率:0%
帮助的人:28.1万
展开全部
int num = (int)(Math.random()*(33-1)+1);
用Math.random();可以产生一个0到1之间(不包括1)的double数,再乘以(上限-下限)+下限 就可以得到一个1到33的double数,再强转为int类型,用num接收。请采纳!
pk_js
2014-03-03 · 超过14用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:18.7万
展开全部
import java.util.*;
public class test {
public static void main(String[] args)
{
Random rand = new Random();
for (int i = 0; i < 5; i++) {
System.out.println(rand.nextInt(33));
}
}

}

在java中有random这种方法可以随机取数的。
详细,望采纳!
追问
这样会产生相同的数字吧
追答
import java.util.*;
public class test {
public static void main(String[] args)
{
int []a={0,1,2,3,4};
Random rand = new Random();
for (int i =0,j=1; j < 6||i<5; i++)
{

a[i]=rand.nextInt(33);
if(a[0]!=a[1]&&a[0]!=a[2]&&a[0]!=a[3]&&a[0]!=a[4]&&a[1]!=a[2]&&a[1]!=a[3]&&a[1]!=a[4]&&a[2]!=a[3]&&a[2]!=a[4]&&a[3]!=a[4])
{
System.out.println(a[i]);
}
}
}

}
这样比较笨拙,不过可以实现不重复的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
295490665d0
2018-05-09 · 超过25用户采纳过TA的回答
知道答主
回答量:112
采纳率:70%
帮助的人:37.1万
展开全部
看是不是这个
List<Integer> list = new ArrayList<>();

for (int i = 1; i <= 33; i++) {
list.add(i);
}

for (int i = 0; i < 5; i++) {
int index = new Random().nextInt(list.size());
System.out.println("第"+(i+1)+"个为:"+list.get(index));
list.remove(index);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chrx_1102
2014-03-03 · TA获得超过153个赞
知道小有建树答主
回答量:132
采纳率:100%
帮助的人:102万
展开全部
for(int i=0;i<5;i++)
{
    a[i]=(int)(Math.random()*33+1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卡宾枪伊霖
2019-04-07
知道答主
回答量:1
采纳率:0%
帮助的人:744
展开全部
public static void main(String[] args) {
HashSet<Integer> Radball = new HashSet<>();

Random random = new Random();

for(;Radball.size()<6;) {
Radball.add(random.nextInt());
}
for(Integer item:Radball) {
System.err.print(item+" ");
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式