使用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;
}
}
}
}
}
最后随便统计了下数据
第二次做了一个记录,用于记录用户抽取几次才能成功
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)+"人");
}
}
}
最后打印输出一下
本文地址:https://blog.csdn.net/weixin_42504094/article/details/112236826
上一篇: 算法图解-广度优先搜索-芒果销售商(Java实现)
下一篇: jQuery常见事件的监听方式