摘要:在抽獎的活動中經(jīng)常會用到這個算法,不同獎項的獲取概率不同,要按概率去隨機生成對應(yīng)的獎品統(tǒng)計概率總和生成概率隨機數(shù)
/* *在抽獎的活動中經(jīng)常會用到這個算法,不同獎項的獲取概率不同,要按概率去隨機生成對應(yīng)的獎品 * */ function random(arr1, arr2) { var sum = 0, factor = 0, random = Math.random(); for(var i = arr2.length - 1; i >= 0; i--) { sum += arr2[i]; // 統(tǒng)計概率總和 }; random *= sum; // 生成概率隨機數(shù) for(var i = arr2.length - 1; i >= 0; i--) { factor += arr2[i]; if(random <= factor) return arr1[i]; }; return null; }; // test var a = ["mac", "iphone", "vivo", "OPPO"]; var b = [0.1, 0.2, 0.3, 0.4]; console.log(random(a, b));
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84595.html
摘要:使用來生成隨機數(shù)在日常操作中是普遍并且是簡單的。如下上述代碼的作用是生成的隨機數(shù)。但是,如果把隨機數(shù)改成隨機整數(shù)。 使用 Math.random 來生成隨機數(shù)在日常操作中是普遍并且是簡單的。如下: let rnd = Math.random() * 10; 上述代碼的作用是生成 0~10 的隨機數(shù)。 那么,這些隨機數(shù)是出現(xiàn)的概率是均衡的嗎?筆者沒辦法直接回答這個問題。因為生成的隨機數(shù)...
摘要:另外,這幾篇幾個不錯的隨機生成隨機數(shù)采用對獲取的浮點數(shù)進行取整操作,也是同樣的問題,能取到左端點,卻無法取到右端點。 最近在琢磨內(nèi)置對象Math的時候,參考了很多網(wǎng)上資料,不過我在Google中搜索js 隨機整數(shù),出來很多博客文章,很遺憾,在我看來排名靠前的這些文章都是錯誤的。接下來我將會論證我這一觀點,同時把我所理解的Math.random()方法跟你分享。showImg(https...
閱讀 2879·2021-10-14 09:43
閱讀 1673·2021-09-29 09:34
閱讀 1757·2021-07-28 00:16
閱讀 2972·2019-08-30 15:53
閱讀 2917·2019-08-30 13:59
閱讀 2972·2019-08-30 13:57
閱讀 1102·2019-08-26 13:38
閱讀 1906·2019-08-26 13:25