這個問題鄒建給出了乙個方法(http://blog.csdn.net/zjcxc/archive/2006/08/20/1099215.aspx),我給出另外乙個方法。
假設我要在10000000 - 99999999之間產生100萬個不重複的隨機數。可以建立乙個表table1,這個表有兩個字段,乙個是所產生的隨機數字段(int型),另外乙個也是int型字段。
使用99999999 - 10000000 =89999999 整除 1000000 = 89(捨去)。然後從10000000開始迴圈1000000次,從10000000開始每一次加89,
即10000000、10000089、10000178...
然後每迴圈一次,使用newid生成乙個隨機數,將這兩個數做為值插入table1中。即第乙個字段插入按步長89遞增的數,第二個數是使用newid隨機生成的數。這樣,table1就有100萬條記錄了,不過隨機值是順序的。但由於第二個欄位是隨機的,因此,只要按第二個字段排序,第乙個欄位上的值就是隨機的。
這樣做不用檢查重複值就可以保證得到1000000個無重複的隨機數。而且它們是均勻分布在10000000到99999999之間。
當然,也可以隨機變化89的步長,使其更加隨機。
這樣做還有乙個好處,可以分批地生成記錄,然後一起插入表中。如一次產生1000條這樣的記錄,插入後再產生下一千條記錄。這樣只要迴圈1000次就可完成。
至於**,很簡單,自己寫吧,這裡只給出思路!!
如何快速生成100萬不重複的8位編號
最近在論壇看到有人問,如何快速生成 100萬不重複的 8位編號,對於這個問題,有幾點是需要注意的 1 如何生成 8位隨機數,生成的數越隨機,重複的可能性當然越小 2 控制不重複 3 考慮效能 針對這個問題,我寫了如下的示例來解決,希望能為有這類需求的人提供指導 生成 100萬條 8位不重複資料的示例...
如何快速生成100萬不重複的8位編號
最近在論壇看到有人問,如何快速生成100萬不重複的8位編號,對於這個問題,有幾點是需要注意的 1 如何生成8位隨機數,生成的數越隨機,重複的可能性當然越小 2 控制不重複 3 考慮效能 針對這個問題,我寫了如下的示例來解決,希望能為有這類需求的人提供指導 生成100萬條8位不重複資料的示例 use ...
如何快速生成100萬不重複的8位隨機編號?
假設我要在10000000 99999999之間產生100萬個不重複的隨機數。可以建立乙個表table1,這個表有兩個字段,乙個是所產生的隨機數字段 int型 另外乙個也是int型字段。使用99999999 10000000 89999999 整除 1000000 89 捨去 然後從10000000...