2012-02-09 45 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