2012-02-09 25 views
-2

我正在製作一款遊戲。我想做一些事情,比如50%的時間表明你今天很幸運,這裏是100美元,50%的時間應該是下次更好的運氣。任何人都可以請指導我如何做到這一點?我正在使用eclipse和java。 我有這個至今:我將如何在android中做概率

for (int a = 0; a < 100; a++) { 
      int per = 0; 
      per = GenerateRandom.getRandom(2); 
         if (per<50) 
         {"better luck next time"} 
         else 
         {"you won $100"} 
} 

是做這個正確的方式?還是有更好的方法來做到這一點?

回答

2

首先 - 不,這不是完全可行的方法。您可能想要使用Android中的Random類生成僞隨機數。 (你可以瞭解更多有關的PRNG here

在我看來,要做到這一點(從實際的Java的角度來看,最好的方法是使用類似的代碼如下:

public String isLucky() { 
    Random ran = new Random() * 100; // Generates values between 0 and 100 exclusive 
    return ran <= 49 ? "Better luck next time!" : "You win $100!" 
1

生成隨機數的標準Java方法是從Math.random()。該方法返回0和1之間的浮點數可以將此轉換爲任何範圍的數字:

int rand = (int)(Math.random() * range + lowerBound); 

哪裏range是要從挑選號碼的數量,並且lowerBound是最小你想選擇的號碼。在你的情況下,你只想在0和1之間選擇50%的機會。您的代碼將如下所示:

public string foo() 
{ 
    for (int a = 0; a < 100; a++) { 
     int rand = (int)(Math.random() * 2); 
     if (rand == 0) { 
      return "better luck next time"; 
     } else { 
      return "you won $100"; 
     } 
    } 
} 
+0

一個問題。如果我想做25%和75%這將如何不同? – NoviceMe 2012-02-09 03:58:43

+0

你的百分比是25的倍數,所以你需要4個可能的值選擇 - 0,1,2和3.如果你想要75%你會檢查'如果rand <= 2',其他的答案是從100個不同的數字0-99中選擇,這個數字可以在任何規模上都可以使用,如果你想要的話,比如說37.48%,你可以選擇10,000檢查'如果rand <= 3748' – 2012-02-09 04:42:16