獲取隨機數(shù)的方法,參數(shù)是需要獲取的隨機數(shù)的長度

為高淳等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及高淳網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、成都網(wǎng)站制作、高淳網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
/**
* 需要的長度
* @param length
*/
private static void getRadom(int length){
//獲取一個隨機數(shù)
double rand = Math.random();
//將隨機數(shù)轉換為字符串
String str = String.valueOf(rand).replace("0.", "");
//截取字符串
String newStr = str.substring(0, length);
System.out.println(newStr);
}
其實就是利用Math.random()方法生成一個隨機的double數(shù),然后轉換為字符串,在字符串中去做操作
8位數(shù) 也就是 1~99999999
然后你直接生成的隨機數(shù) 校對數(shù)據(jù)庫是否存在這個數(shù),存在你就再次調用隨機數(shù),不存在你就用這個隨機數(shù),并且保存到數(shù)據(jù)庫(注:不滿8位,比如1,你就字符串拼接 00000001,再比如 79233 ,你拼接位00079233)
首先,需要一個范圍內的隨機數(shù),第二部判重,如果重復了就再次隨機.
假設我們需要一個m到n的隨機數(shù)..
需要用到random函數(shù)隨機一個從0到1的數(shù).然后再乘m到n的范圍,再加m
double i = Math.random() * (m - n) + m ---- 生成隨機數(shù)
判重..方法有很多種了..比如我們用一個Set來存放已經存在的..
SetDouble set = new LinkedHashSet();
if (set.contains(i)) { 重復了,重新隨機 }
else { 向set中添加: set.add(Double.valueOf(i)); }
2017年8月28日 21:37:44
貼一個代碼給你,沒寫全,能表達意思
package snippet;
import java.util.*;
public class Sort {
static int count = 0;
static char[] buf = { '1', '2', '3', '4' ,'5','6','7','8','9','0','a','b'};
static ListString list = new ArrayListString();
public static void main(String[] args) { select(buf, list, 3);
for (String str : list) {
System.out.println(str);
}
System.out.println("In total: " + count); }
public static void select(char[] source, ListString arrayList,
int num) {
int l = source.length;
char[] temp = new char[num];
System.arraycopy(source, 0, temp, 0, num);
arrayList.add(new String(temp));
for (int i = num; i l; i++) {
for (int j = 0; j num; j++) {
char tempChar = temp[j];
temp[j] = source[i];
arrayList.add(new String(temp));
temp[j] = tempChar;
}
}
}
public static void perm(char[] buf, int start, int end) {
if (start == end) {// 當只要求對數(shù)組中一個字母進行全排列時,只要就按該數(shù)組輸出即可
for (int i = 0; i = end; i++) {
System.out.print(buf[i]);
}
Sort.count++;
System.out.println();
} else {// 多個字母全排列
for (int i = start; i = end; i++) {
char temp = buf;// 交換數(shù)組第一個元素與后續(xù)的元素
buf = buf[i];
buf[i] = temp;
perm(buf, start + 1, end);// 后續(xù)元素遞歸全排列
temp = buf;// 將交換后的數(shù)組還原
buf = buf[i];
buf[i] = temp;
}
}
}
}
if(arr[i]==arr[j]){ //這個位置.你只判斷了數(shù)組的第一個和第二個是不是相等..不相等進入else for循環(huán)就直接輸出結果了..根本就沒有全部判斷..
關于你的思路.真的是無語..簡單的事情被你復雜化了.
誰會隨即產生8位數(shù).有相同的數(shù)值就重新產生.這不是在中六合彩么..效率太低了.
我給你寫個例子吧.;
import java.util.*;
public class Test3 {
public static void main(String[] args) {
Vector vector = new Vector();
String str="";
int count=9;
for (int i = 0; i 9; i++) {
vector.add(i + 1); //把 1-9 存入
}
for (int i = 0; i 9; i++) {
int id=(int)(Math.random()*count); //隨即取里面的數(shù)值 count控制隨即大小
str+=vector.get(id);
vector.remove(id); //刪除已經取走的值
count--;
}
System.out.println(str);
}
}
名稱欄目:java隨機8位數(shù)代碼的簡單介紹
本文來源:http://www.chinadenli.net/article8/dodohop.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、商城網(wǎng)站、做網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站制作、Google
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)