java开发手记

常用链接

统计

最新评论

2008年7月11日 #

洗牌算法

 在我过去三年的职涯中,遇到过无数的问题,一直想记录下来,但是一直耽搁着。从这篇洗牌算法开始,我会一点一点将我所记得的问题和解决办法整理出来。

固定数目的扑克牌,打完后洗牌,每次洗牌得到的顺序都是不一样的。

22个编号的盒子,对应于22种给定的money,每次运行时让盒子里存放随机的money。这是刚毕业的头半年,我刚开始学习java不久,领导让我写的一个游戏程序里的一个技术问题。后来我知道了,是网络上的一个小游戏。只是给我的资料里不需要做游戏的界面,只要实现游戏的后台,在控制台输入输出就可以。

        public int[] randoms() //产生22个随机排列的value

       {

              Random r = new Random();     

              int temp1,temp2;

              int send[] = {1,10,50,100,500,1000,5000,10000,25000,50000,75000,100000,

                            300000,500000,1000000,1500000,2000000,3500000,5000000,

                            7500000,10000000,25000000};

              int len = send.length;

              int returnValue[] = new int[22];

              for(int i=0;i<22;i++)

              {

                     temp1 = Math.abs(r.nextInt())% len;

                     returnValue[i] = send[temp1];

                     temp2 = send[temp1];

                     send[temp1] = send[len-1];

                     send[len-1] = temp2;

                     len--;

              }

              return returnValue;

       }

posted @ 2008-07-11 12:40 米香儿 阅读(1358) | 评论 (0)编辑 收藏