JAVA中怎样实现数组中随机数不重复

只能用Math.random随机数函数,我要的是纯算法,不能调用系统函数实现。我是这样写的,但错误,请指出我错在哪了,我是JAVA新手。代码如下:publicclassC... 只能用Math.random随机数函数,我要的是纯算法,不能调用系统函数实现。我是这样写的,但错误,请指出我错在哪了,我是JAVA新手。代码如下:
public class Class15_4 {
public static void main(String[] args) {
int s;
int a[] = new int[100];
int i=0;
while(i<100){
s=(int)Math.random()*100+1;
for(int j=0;j<=i;j++){
if(a[j]!=s){
a[j]=s;
i++;
}
}
}

}
}
展开
 我来答
四舍五不入6
高粉答主

2020-03-04 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71370

向TA提问 私信TA
展开全部

可以参考下面的代码:

public static void main(String[] args) {

int s = -1;

int a[] = new int[100];

int i = 0;

while (i < 100) {

s = (int) (Math.random() * 100 + 1);

for (int j = 0; j < 100; j++) {

if (a[j] == s) {

break;

} else if (j == i) {

a[i] = s;

i++;

break;

}

}

}

}

扩展资料:

java参考函数

max(x,y) 返回 x 和 y 之间较大的数

min(x,y) 返回 x 和 y 之间较小的数

pow(x,y) 返回 y^x 的值

random() 返回位于 0 到 1 之间的随机函数

round(x) 四舍五进后与整

sin(x) 返回数字的正弦值

sqrt(x) 返回数字的平方根

tan(x) 返回一个角度的正切值

toSource() 显示对象的流代码

valueOf() 返回数教对象的本初值

参考资料来源:百度百科-Java (计算机编程语言)

西安阿呆
2010-09-24 · TA获得超过147个赞
知道答主
回答量:209
采纳率:0%
帮助的人:188万
展开全部
你的逻辑关系错了。

public class Class15_4 {
public static void main(String[] args) {
int s;
int a[] = new int[100];
int i=0;
while(i<100){
s=(int)Math.random()*100+1;
for(int j=0;j<i;j++){
if(a[j]==s){
// 发现重复数据,跳出循环。
break;
}
}
if (j == i) {
// 没有找到相同的数据,赋值。
a[i] = s;
i++;
}
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
司梓韩馀Y2
推荐于2017-11-23 · TA获得超过158个赞
知道答主
回答量:153
采纳率:0%
帮助的人:154万
展开全部
楼上的 if (j == i)这个j取不到值了吧,你在for定义的,随手写了个,楼主试试
public static void main(String[] args) {
int s = -1;
int a[] = new int[100];
int i = 0;
while (i < 100) {
s = (int) (Math.random() * 100 + 1);

for (int j = 0; j < 100; j++) {
if (a[j] == s) {
break;
} else if (j == i) {
a[i] = s;
i++;
break;
}
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式