關於生成不重複序號的問題

2021-08-23 13:21:19 字數 679 閱讀 2618

很多情況下我都是通過資料庫的自增來生成不重複的序號的

最近發現了乙個不錯的函式

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...