A. java中怎样实现数组中随机数不重复
可以参考下面的代码:
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)javarandom重复扩展阅读:
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() 返回数教对象的本初值
B. Java随机生成10个0-100的数,重复生成10次,统计重复出现的数字和重复的次数
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Random;
importjava.util.Set;
publicclassGenerateNumber{
publicstaticvoidmain(String[]args){
Map<Integer,Integer>container=newHashMap<>();
RandomnumberGenerator=newRandom();
intcount=0;
do{
intnumber=numberGenerator.nextInt(100);
if(container.get(number)!=null){
container.put(number,container.get(number)+1);
}else{
container.put(number,1);
}
count++;
}while(count<10);
Set<Map.Entry<Integer,Integer>>set=container.entrySet();
System.out.println("数字 出现次数");
for(Map.Entry<Integer,Integer>entry:set){
System.out.println(entry.getKey()+" "+entry.getValue());
}
}
}
C. java关于Random的用法
java.util.Random类用法
1.该类的构造方法:
Random():构造一个无参的随机数生成器。使用系统时间的毫秒作为默认种子。
Random(long seed):使用long数据类型的种子构造一个随机数生成器。
2.方法摘要:
boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。
double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。
float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。
int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值.
int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值n(不包括)之间均匀分布的 int 值。
long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
void setSeed(long seed):使用单个 long 种子设置此随机数生成器的种子。
注意:如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
(3)javarandom重复扩展阅读:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
D. java随机生成6位数,要求每次产生的随机数与已生成的随机数不重复,小弟觉得用random产生的数可能重复。
有好几种方法,
1 两层循环去重复
2 利用hashset的不重复的特性
3 排除已随机到的数
还有其他的,内你可以再搜搜,希望能帮助你容
详见
http://wsjiang.iteye.com/blog/1775341
E. java 随机生成一个10位数 至少保证在多少次内不会重复
既然是随机,就没有确定的次数
使用工具:MyEclipse 10
package Snsq;
import java.util.*;
public class java8 {
//随机数字(0~N)不重复的数字,过程及随机所需的次数。
public static void main(String[] args) {
Scanner in=new Scanner(System.in);//创建扫描仪
int k=in.nextInt();//接收扫描到的数据(数字类型)
Random rd=new Random();//创建随机机器
int [] a=new int [k];//给数组定义大小为k
int b=0,c=0,d=0;//创建三个数字类型变量以便运算
//b是累计循环次数,c是累计不重复个数,d是已给值数组a[]不重复的个数。
for(int j=0;j<=k*20;j++){//创建嵌套for循环,并定义循环次数为(20*k)
b++;
int y=rd.nextInt(k);//生成随机数(0~k)
for(int i=0;i<k;i++){
if(y!=a[i]){c++;}//每次随机出的数判断是否与数字a[]的每个值重复,是则c做累加,直到c==k
}
if(c==k){d++;a[d-1]=y;System.out.print(y+" ");}else{c=0;}//输出每一次随机到与数组a[]里不重复的数,累计不重复个数变量c变为初始值0。
if(d==k-1){break;}//已达到数组a[]里的值都不重复,并结束循环。
}
for(int i=0;i<k;i++){//用嵌套for循环将数组a[]进行冒泡排序从小到大
for(int j=0;j<k-1;j++){
if(a[j]>a[j+1]){d=a[j];a[j]=a[j+1];a[j+1]=d;}
}
}
System.out.println();
for(int i=0;i<k;i++){System.out.print(a[i]+" ");}//用for打印已排好序的数,以便验证是否都不重复
System.out.println();
System.out.println("一共随机"+b+"次");//输出结果
}
}