當前位置:首頁 » 操作系統 » 演算法抽獎

演算法抽獎

發布時間: 2023-07-23 18:37:20

㈠ 抽獎獎品概率的演算法謝謝了,大神幫忙啊

可以預定義一個數,然後根據百分比計算各自的門檻值。如下: (注意:概率需要從小到大排列,因為用if判斷的問題。) #define BASE_NUMBER 32767 #define BASE_DIV 100 #define RATE1 1 #define RATE2 5 #define RATE3 20 #define RATE4 74 int var1, var2, var3, var4; main() { var1 = (int)((float)BASE_NUMBER*RATE1/BASE_DIV); var2 = (int)((float)BASE_NUMBER*RATE2/BASE_DIV); var3 = (int)((float)BASE_NUMBER*RATE3/BASE_DIV); var4 = (int)((float)BASE_NUMBER*RATE4/BASE_DIV); ..... if ( rand <= var1 ) { // 第一種 } else if ( rand <= var2 ) { // 第二種 } else if ( rand <= var3 ) { // 第三種 } else { // 第四種 } ... } 如上,只需要改變BASE_DIV 和RATE1 2 3 4就能控制

求採納

㈡ 抽獎活動的中獎幾率是怎麼算的

中獎的概率就是用獎品的數量除以參與抽獎的總人數,得到的結果就是抽到該獎品的中獎概率。如果參與抽獎人數有800個人,獎品有5件,那麼中獎的概率就是:5/800=0.625%

在國內彩市中頭獎概率最低的是大樂透玩法,概率僅為2142萬分之一。其次是雙色球的頭獎中出概率,為1772萬分之一。


而美國最熱門的兩大彩種之一,兆彩(超級百萬)的中頭獎概率為1.75億分之一,堪稱史上難度最大的彩票玩法,也就是說,美國兆彩中頭獎的概率僅為雙色球的1/9.86。

概率,亦稱「或然率」,它是反映隨機事件出現的可能性大小。隨機事件是指在相同條件下,可能出現也可能不出現的事件。

例如,從一批有正品和次品的商品中,隨意抽取一件,「抽得的是正品」就是一個隨機事件。設對某一隨機現象進行了n次試驗與觀察,其中A事件出現了m次,即其出現的頻率為m/n。

經過大量反復試驗,常有m/n越來越接近於某個確定的常數(此論斷證明詳見伯努利大數定律)。該常數即為事件A出現的概率,常用P
(A) 表示。

㈢ 抽獎的概率怎麼計算

抽取一個紅球的概率為:[5/(5+50+150)]*100%=2.44%
抽取2個紅球的概率為:2.44%*{[4/(4+50+150)]*100%}=0.047824%
抽取3個紅球的概率為:0.047824%*{[3/(3+50+150)]*100%}=0.0007078%
抽取1個黃球的概率為:50/205*100%=24.39%
抽取2個黃球的概率為:24.39%*[49/204*100%]=5.5858%
抽取3個黃球的概率為:5.5858%*[48/203*100%]=1.385%

㈣ 有哪些經典的抽獎演算法

常見的有兩種

第一類是常見的有等級的抽獎活動,如一等、二等、三等獎等等

java">//分別為一、二、三、四等將的獎品數量,最後一個為未中獎的數量。
privatestaticfinalInteger[]lotteryList={5,10,20,40,100};

privateintgetSum(){
intsum=0;
for(intv:lotteryList){
sum+=v;
}
returnsum;
}

privateintgetLotteryLevel(){
Randomrandom=newRandom(System.nanoTime());
intsum=getSum();
for(inti=0;i<lotteryList.length;++i){
intrandNum=Math.abs(random.nextInt())%sum;
if(randNum<=lotteryList[i]){
returni;
}else{
sum-=lotteryList[i];
}
}
return-1;
}

第二類是不分等級的抽獎活動,僅需要參與人數與獎品總數,各獎品中獎概率相等。

//另一種抽獎演算法,用於公司抽獎,即總參與人數與獎品數固定。
=75;
privatestaticfinalinttotal=175;
privatestaticSet<Integer>lotterySet=newHashSet<Integer>();
static{
for(inti=1;i<=lotteryNum;++i){
lotterySet.add(total*i/lotteryNum);
}
}
privateintgetLotteryNum2(){
Randomrand=newRandom(System.nanoTime());
intrandNum=Math.abs(rand.nextInt())%total;
if(lotterySet.contains(randNum)){
returnrandNum*lotteryNum/total;
}
return-1;
}

㈤ c# 如何實現抽獎轉盤演算法

每次抽的時候分配一個唯一的號碼,就不虛隱灶可能同時抽到一個獎了呀,
所謂的轉盤只不過是一個動畫效果的障眼法而已差扮,這樣的實現攜陵就不難了哈

熱點內容
微商城系統源碼 發布:2025-03-15 13:31:32 瀏覽:591
什麼是平演算法 發布:2025-03-15 13:18:36 瀏覽:839
seleniumpython教程 發布:2025-03-15 13:11:19 瀏覽:624
c語言對前端 發布:2025-03-15 13:04:01 瀏覽:780
解壓粉磚 發布:2025-03-15 12:54:38 瀏覽:224
qq的賬號密碼到底是什麼 發布:2025-03-15 12:45:48 瀏覽:764
c語言讀取wav 發布:2025-03-15 12:45:44 瀏覽:560
iphone限制密碼忘了怎麼辦 發布:2025-03-15 12:40:53 瀏覽:819
如何取消信用卡密碼鎖 發布:2025-03-15 12:33:34 瀏覽:908
加密文件庫 發布:2025-03-15 12:31:44 瀏覽:567