欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用java做一个简单的集卡程序

程序员文章站 2022-03-02 23:38:32
使用java做一个简单的集卡程序本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕public class Test {public static void main(String[] args) {//1.总循环数(模拟用户)for (int i = 0; i < 10000; i++){int[] a = {1,2,3,4}; //4张卡片//2.生成随机数sss并记录一个用户集卡完毕后的统计for(int n = 0;;n++){int...

使用java做一个简单的集卡程序

本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕

public class Test {
    public static void main(String[] args) {
        //1.总循环数(模拟用户)
        for (int i = 0; i < 10000; i++)
        {
            int[] a = {1,2,3,4}; //4张卡片
            //2.生成随机数sss并记录一个用户集卡完毕后的统计
            for(int n = 0;;n++)
            {
                int index = (int) (Math.random() * a.length);
                int sss=index+1;
                //System.out.println(sss);
                //3.如果a的数值等于sss的数值则a的数值等于0
                for (int m = 0; m < a.length; m++)
                {
                    if(a[m] == sss)
                    {
                        a[m] = 0;
                    }
                }
                //System.out.println(Arrays.toString(a));
                //如果a数组的和都等于0则跳出循环,并记录本次循环次数
                if(Arrays.stream(a).sum()==0)
                {
                    int s = n+1;
                    System.out.println(s);
                    break;
                }
            }
        }
    }
}

最后随便统计了下数据使用java做一个简单的集卡程序
第二次做了一个记录,用于记录用户抽取几次才能成功

public class Test {
    public static void main(String[] args) {
        Map<Integer,Integer>map = new HashMap<Integer,Integer>();
        //1.总记录数
        for (int i = 0; i < 10000; i++)
        {
            int[] a = {1,2,3,4};
            //2.生成随机数sss并记录集卡完毕后的统计
            for(int n = 0;;n++)
            {
                int index = (int) (Math.random() * a.length);
                int sss=index+1;
                //System.out.println(sss);
                //3.如果a的数值等于sss的数值则a的数值等于0
                for (int m = 0; m < a.length; m++)
                {
                    if(a[m] == sss)
                    {
                        a[m] = 0;

                    }

                }
                //System.out.println(Arrays.toString(a));
                //如果a数组的和都等于0则跳出循环,并记录本次循环次数
                if(Arrays.stream(a).sum()==0)
                {
                    int s = n+1;
                    //判断 s 值是否等于当前值的 s
                    if(map.containsKey(s)){
                        //若相等,则把 s 值每次加一
                        map.put(s, map.get(s)+1);
                    }else{
                        //若不相等,则放入map,并且设置 s 为1
                        map.put(s,1);
                    }
                    //打印输出s(比对map中的数据)
                    //System.out.println(s);
                    break;
                }
            }
        }
        Set<Integer> res = map.keySet();
        for (Integer im : res) {
            System.out.println("用户集卡" + im + "次成功的共有" + map.get(im)+"人");
        }
    }
}

最后打印输出一下
使用java做一个简单的集卡程序

本文地址:https://blog.csdn.net/weixin_42504094/article/details/112236826

相关标签: java