急!!!java 怎么任意生成一个不重复的10位数!(不能重复啊!各位高手帮帮忙!)
4个回答
展开全部
别人要的是不重复的10位数,楼上的各位都没有实现这个功能。
首先定义一个HashMap,用来存放生成的随机数,然后用Random生成一个10位的随机数,再与HashMap里面的数据进行对比,没有则返回这个数,有的话就用递归即再调用这个方法来继续生成下一个10位的随机数,这样就可以了。
楼主懂了没
首先定义一个HashMap,用来存放生成的随机数,然后用Random生成一个10位的随机数,再与HashMap里面的数据进行对比,没有则返回这个数,有的话就用递归即再调用这个方法来继续生成下一个10位的随机数,这样就可以了。
楼主懂了没
更多追问追答
追问
麻烦大侠能把程序写一下不,感激不尽!!!我是个新手,思路知道,但是写起来有点困难!
追答
public class Test1 {
List list = new ArrayList(); // 存放数据
public static void main(String[] args) {
System.out.println(new Test1().getData());
}
private String getData() {
Random r = new Random();
String str = "";
for (int i = 0; i < 10; i++) { // 循环10次
Integer x = r.nextInt(10); // 0-9的随机数
str += x.toString(); // 拼成10位数 因为int类型只能存放200000000+的数据,所以只能用字符串拼接
}
if(list.contains(str)) { //存在则再生成一次数据
this.getData();
}
return str;
}
}
好了
展开全部
import java.util.*;
public class Demo{
public static void main(String[] args){
Random r=new Random();
for(int i=0;i<10;i++){
int y=r.nextInt();
System.out.println(y);
}
}
}
public class Demo{
public static void main(String[] args){
Random r=new Random();
for(int i=0;i<10;i++){
int y=r.nextInt();
System.out.println(y);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你个c++的 然后你再按照java改下就行了 不好意思我实在是没有时间给你用java写了 c++的是我一次需要的时候写的 一直都放着的
void random20(int pick[],int n)//获取[1,n]之间的任意10个数{
int i=0,j=0;
bool flag = true;//不存在为true
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
{
int num = rand()%n+1;
for(j=i-1;j>=0;j--)
{
if(pick[j] == num)
{
flag = false;
break;
}
flag = true;
}
if(flag)
{
pick[i]=num;
}
else
{
i--;
}
}
}
void random20(int pick[],int n)//获取[1,n]之间的任意10个数{
int i=0,j=0;
bool flag = true;//不存在为true
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
{
int num = rand()%n+1;
for(j=i-1;j>=0;j--)
{
if(pick[j] == num)
{
flag = false;
break;
}
flag = true;
}
if(flag)
{
pick[i]=num;
}
else
{
i--;
}
}
}
追问
c++的看不懂啊,我该怎么写?还希望麻烦您一下,我是个新手。帮帮忙!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Random b=new Random();
for(int j=0;j<10;j++){
int a=b.nextInt();
System.out.println(a);
}
for(int j=0;j<10;j++){
int a=b.nextInt();
System.out.println(a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询