很多情況下我都是通過資料庫的自增來生成不重複的序號的
最近發現了乙個不錯的函式
uniqid()
可以生成基於微秒計的當前時間的唯一的 id。
試了下,還真不錯,
對於生成sessionid來說是個不錯的選擇
試了下,在同一頁面,呼叫此函式10,顯示微秒數相同,id號不相同
uniqid(prefix,more_entropy)prefix
可選。為 id 規定字首。如果兩個指令碼在相同的微妙生成 id,該引數很有用。
more_entropy可選。規定位於返回值末尾的更多的熵。
對於訪量很大的情況下,如同一微秒內有上千個人的請求下,可以把第二個引數設為true
這樣可以讓結果的唯一性更好。不過那樣的話生成的長度為23位(其中有乙個小數點),否則為13位
// better, difficult to guess$better_token
= md5
(uniqid
(rand
(),
true
));
個人認為md5加與不加乙個樣,同乙個id生成的md5肯定是一樣的,呵呵
記下以備後用
關於生成不重複隨機數組的問題
有時候想測試一些模組的效能,不其然地就想到用機器自動生成一些測試資料來,隨機數應該是最常用的一種,今天小弟就用了這種簡單的方法,生成了上萬個隨機數,但是問題隨之而來,看看生成的隨機數組,當中的相臨重複佔了一大半,這樣的測試用例如果用來測試一些排序模組的話,效果可想而知,看看msdn上面的事例,其中有...
不重複排列的生成
全排列的話比較好打。可,當乙個集合中有許多重複的元素,如 如何生成不重複的排列?易知答案只有乙個。生成不重複排列,這很實用。思想 把重複的數字不在看做多個元素,而是看做乙個元素的多個個數。然後遞迴生成時,新增在答案裡的是次數的減少。正確性 如果按照以上思路,那麼可以知道,每個因為我們把重複的元素當做...
隨機生成不重複的資料
1 js生成不重複的隨機數 方法一 傳入乙個最大允許生成的引數。隨機生成十個不重複的資料出來 param是生成的最大數 function getnewrandomstr param if isequ i else num num.length val for var j 0 j num.length...