日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

抽奖概率算法

發布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抽奖概率算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求

1.指定時間:一天

2.固定獎品個數 :10
3.希望概率根據實際情況變化,不要太快抽完,也不要到結束也沒人抽到
4.每人抽一次


分析
1.剩余時間越少,概率應該越高,這要保證前期不會太快,基數/剩余時間
2.剩余獎品越少,概率應該低,獎品越少越應該控制不要太快抽完,降低概率可以做到這點,基數*剩余獎品
3.參加人數越多,概率應該越低,人的基數增加,降低概率可以保證抽中的人不會增加太多。基數/參加人數
4.如果每人抽一次,則應該用人數的增長率計算,如果一人抽多次,應該用總人數計算


概率 = 基數*剩余獎品數/剩余時間/參與人數
概率 = 基數*剩余獎品數/(剩余時間+參與人數)
基準概率 = 1%

如果概率計算后大于基準概率,則使用基準概率,否則使用計算得到的概率


function calcScale(scale_val,x){return Math.ceil(100*Math.pow(1/scale_val,$x)); }function getScale(h,h_next){//換算成分鐘var x = h.split(":");var y = h_next.split(":");var h_minute = x[0]*60+x[1]*1;var h_next_minute = y[0]*60+y[1]*1;//計算當前時間var d = new Date();var _nh = d.getHours();var _nm = d.getMinutes(); var _n_now = _nh*60+_nm;//兩次抽獎時間間隔var total = h_next_minute-h_minute;var data_x = [];var data_y = [];var data_z = [];var _now = x;var _h,_m;var scale_val = $("#scale_val").val()*1; //基數for(var i=0;i<=total;i++){_now = h_minute+i;_h = Math.floor(_now/60);_m = _now%60;if(_m<10){data_x.push(_h+":0"+_m);}else{data_x.push(_h+":"+_m);}if($(".use_specified_scale:checked").val()==2){$x = total-i;$y = calcScale(scale_val,$x);}else{$y = $("#specified_scale").val();}data_y.push($y);if(_n_now == _now){if(_n_now>=h_minute && _n_now<=h_next_minute){//當前時間段data_z = [{name : '當前概率%', value : $y+' %', xAxis: i, yAxis: $y}];}}}var data = new Array();data.push(data_x);data.push(data_y);data.push(data_z);return data; }



總結

以上是生活随笔為你收集整理的抽奖概率算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。