压大,就是只要随机数在big[]范围之内
压小,就是只要随机数在small[]范围之内

解决方案 »

  1.   

    eg: random(int level) //level 就是下注的级别,级别不同,几率不同   根据level去配置文件中取概率,然后根据概率取随机数
      

  2.   

    你可以这样做:你产生一个随机数[0~1],根据你的概率得到这次这个玩家是赢还是输然后就能知道需要产生的号码是大还是小,这个时候才在相应的big or small中产生一个随机数找一个号码
      

  3.   

    figoren(figoren)不错,你的想法和我的差不多,谢谢,握手~  ChDw(米) 你的思路比figoren(figoren)和我更优秀,不愧是2个星啊,羡慕ing, 大家再来想想,看还有没有比ChDw(米) 更好的思路,呵呵
      

  4.   

    ZhangYv(做人要有人品,灌水要有水品) 你的算法和ChDw(米)同出一辙,不过我认为没必要接力,用你括号里的方法更直观呀。     三个星星的牛人都来了,谢谢你了
      

  5.   

    发送者 ntzls 发送时间 2004-8-26 23:53:47 根据金额及random.nextInt(10);的值来判断1。玩家下注100元,随机到 0为胜,概率为10%
    2。玩家下注300元,随机到 0-1 为胜,概率为20%
    3. ...400元,随机到0-2,概率为30%
    ....
    0-4,概率为50%相信random的随机性:
    import java.util.Random;
    public class TestDouble{
      public static void main(String[] args) 
      {
        Random rand = new Random();
        int count[] = new int[10];
        for (int i=0; i<100000; i++){
          int num = rand.nextInt(10);
          count[num]++;
        }
        for (int i=1; i<10; i++){
          System.out.println(count[i]);
        }    
      }
    }感谢 ntzls ,我有2个地方不太明白for (int i=0; i<100000; i++){
          int num = rand.nextInt(10);
          count[num]++;
        }
        
    1。为什么这里要循环100000次
    2。为什么取到随机数后要++(你在前面说的是从0取的)还请ntzls现身解说,我好散分,:)
      

  6.   

    只可惜ntzls不肯现身,还是通过发短信给我答案,再次谢谢!ntzls的解说:
    1、选10万做循环旨在增加随机试验次数,以符合大数法则,顺便介绍一下这个概念:
    大数法则是指一件事重复实验的次数愈多,所得的预估发生率就会愈接近真实的发生率。 
    【举例说明】 
    扑克牌总共有52张牌,理论上每一张被抽到的机率都应该是1/52,但实际上如果你只抽52次,不太可能每一张牌都刚好被抽到一次,也就是说,他们真正被抽中的机率并非1/52。但是如果我们抽一万次,那么每一张牌出现的机率将更接近1/52。假设我们抽10万次,每一张牌出现的机率又会比一万次更接近1/52。以上的实验已经由西方数学家实验证实。 
    2、count[num]++是在进行统计0-9中的数在10万次循环中产生的次数,可见其在1万左右。