隨機數生成(永不重複)

2021-09-26 05:47:24 字數 2059 閱讀 7493

public class randomtreeutils ;

//// char chars = new char;

//char chars = new char;

int treedeeps = chars.length;

int key = 7;

// 最多生成7位數

if (treedeeps > key)

// 返回樹形

arraylist treenodelist = treenodebychars(chars, treedeeps);

// 迴圈輸出 判斷重複

looptreenode(treenodelist, treedeeps);

}private static void looptreenode(arraylist treenodelist, int treedeeps)

count ++;

}system.out.println("end .... " + count);

}private static arraylist treenodebychars(char chars, int treedeeps)

//建立跟節點.可以隨便給個標識

node root = new node('#');

// 把跟節點加入樹形集合的第一層

treenodelist[0].add(root);

//從root(0) 到 第七層的 父節點需要處理,位數

for(int deep = 0 ; deep < treedeeps; deep ++)

//2.建立子節點

node child = new node(v,currentnode.getnoderoutestring(),clonebooleanarr(currentnode.getrout()));

//3. 新增子節點

currentnode.getchildens().add(child);

//4. 新增自己節點路徑

child.setrout(v);

//5. 將節點新增到下一輩list中

nextnodelist.add(child);}}

}return treenodelist;

}public static boolean clonebooleanarr(boolean re)

boolean aa = new boolean[re.length];

for(int i = 0 ; i < re.length ; i++)

return aa;

}public static class node

public node(char value)

public node(char value,string proute,boolean rout)

/*** 節點本身的值

*/char value;

/*** 子節點,最多有62個(就是種子的最大數目)

*/listchildens = new arraylist<>(62);

/*** 路徑節點 路徑有沒有

*/boolean rout = new boolean[128];

/*** 路徑順序

*/private stringbuilder routestr = new stringbuilder();

public char getvalue()

public void setvalue(char value)

public listgetchildens()

/*** 判斷乙個值是否存在,最小0是48, z:122, z:90

* @param i

* @return

*/public boolean exist(int i)

/*** 標識路徑存在

* @param i

*/public void setrout(int i)

public boolean getrout()

public string getnoderoutestring()

}

不重複隨機數生成

直接上 生成 0,total 的隨機數 最大隨機數 ilist private static ilistgetrandomsequence int total random random new random for var i listbase.count 1 i 0 i return listo...

生成不重複的隨機數

思想是用乙個陣列來儲存索引號,先隨機生成乙個陣列位置,然後把這個位置的索引號取出來,並把最後乙個索引號複製到當前的陣列位置,然後使隨機 數的上限減一,具體如 先把這100個數放在乙個陣列內,每次隨機取乙個位置 第一次是1 100,第二次是1 99,將該位置的數用最後的數 代替。int index n...

Java 生成任意位數永不重複的隨機數策略實現

在專案中遇到客戶乙個需求,id的生成策略 長度8位,使用者在知道自己的id 如 10000018 後,不能通過id來推測相關資訊,如使用者可能推測我是第18個註冊使用者,上乙個註冊使用者的id是10000017,這樣就不能很好的保護賬號安全了,可以憑證推測資料來進行不法之事。經過網上查詢和思考,便有...