【明日方舟】用代码探究明日方舟6星保底机制
0 · 发布于 2020-11-05 21:53:17
用视频模拟抽卡,过一把手瘾!
https://www.bilibili.com/video/av56043480/
100连能出几个六星?传送门:
https://b23.tv/av54873561
总结一下:
大约50%的博士在35次之前抽到了6星
大约90%的博士在60次之前抽到了6星
大约99.8%的博士在70次之前已经抽到了6星
然后本次实验的这一亿个博士里,在85之前全都抽到了6星
没有一个人成功吃到了99次的保底。
改正一下:最后一条是已经抽到六星干员人数的占比
以下是相关代码,感兴趣的博士们直接拿走康康奥!
public class Arknights {
public static void main(String [] args){
int n = 100000000;//需要测试的人数
int times[] = new int[100];//用于存放每个第几次抽中的人数
double probability[] = new double[100];//计算概率
int sum = 0;//人的总数用于核对算法
boolean get6 ;
for(int i = 1;i <= n ;i++){
int j = 0;
get6 = false;
while (get6 == false){
//抽一次
int get = (int)(1+Math.random()*(50-1+1));//生成1到50的随机数
j++;
if(j <= 50){
if(get == 1){//1/50的概率也就是2%
times[j]++;
get6 = true;
}
}else{
if(get <= 1+(j-50)){//每次没有抽中都会加2%
times[j]++;
get6 = true;
}
}//抽一次的行为结束
}
}
for(int i = 1;i < times.length;i++){
sum += times[i];
probability[i] = (double)times[i]/(double) n;
System.out.println("第"+i+"次抽中的人数: "+times[i]+" 占比为:"+probability[i] + " 目前已经抽中6星干员的人数: "+(double)sum/(double) n);
}
System.out.println("总人数为"+sum);
}
}
0条评论