由一场惨败想到的

由一场惨败想到的

今天玩《疯狂大陆2》,因为钱不够升级,想到玩一玩游戏中赌博游戏,看看能不能赚到钱,没想到,运气实在是差,一下子输了个倾家荡产,钱只有0了。
后来想想,游戏中肯定设定了一个比率,而输和赢的利弊肯定不是50%,所以我输光是很正常的。接着又想,如果假定一个数,它是在0到10之间的,如果输入是均匀的,取到任意值的概率应该为10%。如果一个数是从0到100之间,那么任取一个数在n*10到(n+1)*10之间的概率也应该是10%,但是从人的感觉上,后者的把握应该要大一点,虽然理论上能够应该是一样的。
然后想到j2me中提供的Random取得随机值是不是均匀的呢?于是写了下面的程序进行验证:

 Random m_random = new Random();
 public void test(){
  int tmp=0;
  int [] re=new int[10];
  for(int i=0;i<0xffff;i++){
   tmp=m_random.nextInt()&0x7fffffff;
   tmp%=10;
   for(int j=0;j<10;j++){
    if(tmp==j) re[j]++;
   }
  }
  for(int j=0;j<10;j++){
   System.out.println("re["+j+"]="+re[j]);
  }  
 }
输出结果:
re[0]=6613re[1]=6563re[2]=6459re[3]=6501re[4]=6808re[5]=6616re[6]=6472re[7]=6584re[8]
=6468re[9]=6451

从结果看到,应该是均匀的~
最后,又想,怎样写一个赌博游戏的作弊器?比如简单的赌大小,用户选择大或者小,游戏判断结果。那么作弊器可以这样,当用户输入决定信息后,把截断消息,按照赌博游戏的算法,进行预运算,如果判定能够取胜,则把结果放回游戏中。
 
 

Leave a Reply

Your email address will not be published. Required fields are marked *