摘要:在抽獎(jiǎng)的活動(dòng)中經(jīng)常會(huì)用到這個(gè)算法,不同獎(jiǎng)項(xiàng)的獲取概率不同,要按概率去隨機(jī)生成對(duì)應(yīng)的獎(jiǎng)品統(tǒng)計(jì)概率總和生成概率隨機(jī)數(shù)
/* *在抽獎(jiǎng)的活動(dòng)中經(jīng)常會(huì)用到這個(gè)算法,不同獎(jiǎng)項(xiàng)的獲取概率不同,要按概率去隨機(jī)生成對(duì)應(yīng)的獎(jiǎ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)計(jì)概率總和 }; random *= sum; // 生成概率隨機(jī)數(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/84595.html
摘要:使用來(lái)生成隨機(jī)數(shù)在日常操作中是普遍并且是簡(jiǎn)單的。如下上述代碼的作用是生成的隨機(jī)數(shù)。但是,如果把隨機(jī)數(shù)改成隨機(jī)整數(shù)。 使用 Math.random 來(lái)生成隨機(jī)數(shù)在日常操作中是普遍并且是簡(jiǎn)單的。如下: let rnd = Math.random() * 10; 上述代碼的作用是生成 0~10 的隨機(jī)數(shù)。 那么,這些隨機(jī)數(shù)是出現(xiàn)的概率是均衡的嗎?筆者沒(méi)辦法直接回答這個(gè)問(wèn)題。因?yàn)樯傻碾S機(jī)數(shù)...
摘要:另外,這幾篇幾個(gè)不錯(cuò)的隨機(jī)生成隨機(jī)數(shù)采用對(duì)獲取的浮點(diǎn)數(shù)進(jìn)行取整操作,也是同樣的問(wèn)題,能取到左端點(diǎn),卻無(wú)法取到右端點(diǎn)。 最近在琢磨內(nèi)置對(duì)象Math的時(shí)候,參考了很多網(wǎng)上資料,不過(guò)我在Google中搜索js 隨機(jī)整數(shù),出來(lái)很多博客文章,很遺憾,在我看來(lái)排名靠前的這些文章都是錯(cuò)誤的。接下來(lái)我將會(huì)論證我這一觀點(diǎn),同時(shí)把我所理解的Math.random()方法跟你分享。showImg(https...
閱讀 2937·2021-10-14 09:43
閱讀 1789·2021-09-29 09:34
閱讀 1821·2021-07-28 00:16
閱讀 3016·2019-08-30 15:53
閱讀 2979·2019-08-30 13:59
閱讀 3029·2019-08-30 13:57
閱讀 1166·2019-08-26 13:38
閱讀 1957·2019-08-26 13:25