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,這樣就不能很好的保護賬號安全了,可以憑證推測資料來進行不法之事。經過網上查詢和思考,便有...