摘要:在抽獎的活動中經常會用到這個算法,不同獎項的獲取概率不同,要按概率去隨機生成對應的獎品統計概率總和生成概率隨機數
/* *在抽獎的活動中經常會用到這個算法,不同獎項的獲取概率不同,要按概率去隨機生成對應的獎品 * */ function random(arr1, arr2) { var sum = 0, factor = 0, random = Math.random(); for(var i = arr2.length - 1; i >= 0; i--) { sum += arr2[i]; // 統計概率總和 }; random *= sum; // 生成概率隨機數 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));
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84595.html
摘要:另外,這幾篇幾個不錯的隨機生成隨機數采用對獲取的浮點數進行取整操作,也是同樣的問題,能取到左端點,卻無法取到右端點。 最近在琢磨內置對象Math的時候,參考了很多網上資料,不過我在Google中搜索js 隨機整數,出來很多博客文章,很遺憾,在我看來排名靠前的這些文章都是錯誤的。接下來我將會論證我這一觀點,同時把我所理解的Math.random()方法跟你分享。showImg(https...
閱讀 2871·2021-10-14 09:43
閱讀 1658·2021-09-29 09:34
閱讀 1744·2021-07-28 00:16
閱讀 2964·2019-08-30 15:53
閱讀 2905·2019-08-30 13:59
閱讀 2961·2019-08-30 13:57
閱讀 1091·2019-08-26 13:38
閱讀 1894·2019-08-26 13:25