關於前台頁面產生不可重複的隨機數id的一點個人做法

2021-10-03 22:42:11 字數 344 閱讀 7692

因為專案的頁面時動態生成,所以生成的元素id是個問題。本來想使用隨機序列的,後來想想還是用了隨機數。

var rowid;

var rowidarr = new array();//自定義陣列

rowid=math.ceil(math.random()*100);

while(rowidarr.indexof(rowid)!=-1)

這裡用了乙個陣列儲存產生的隨機數,然後第二次生成的時候判斷此隨機數是否已經生成。如果生成過了,那麼返回重新生成

rowidarr.indexof(rowid)!=-1

是判斷當前陣列裡存不存rowid的值,不存返回-1,存在返回所在的下標。

關於產生無重複隨機數

思路 有點類似於選擇排序法,只依靠乙個陣列,產生後陣列的最後n位即為所需的n個隨機數。例如,從1 10取3個不重複的隨機數,則初始時 1 2 3 4 5 6 7 8 9 10 進行第一遍隨機,rander在0 n i 1 中選擇,n為10,i為遍數,設得3 1 2 10 4 5 6 7 8 9 3 ...

關於產生不重複隨機數的演算法

來自 方法1 去重法 這是最容易想到的方法,逐個產生這些隨機數,每產生乙個,都跟前面的隨機數比較,如果重複,就重新產生。這種方法效率比較低,且比較次數呈線性增長,越往後次數越多。方法2 篩選法 所謂 篩選法 就是根據要產生隨機數指定的範圍 起始數必須小於終止數 將這些數全部裝入乙個陣列,然後利用系統...

高效產生不重複的隨機數

purpose 生成隨機的不重複的測試資料 1000w資料量,要保證生成不重複的資料量,一般的程式沒有做到。但,本程式做到了。include include include include include include define size 10000000 int num size void ...