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+"次");//輸出結果
}
}