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