【引言】为了充分证明自己的血统,以科学的方式检查自己的欧气含量,我写了一个简短的小程序,用来完成对活动抽卡情况的统计。
【关键词】 概率学、数学、计算机科学
【程序内容】
#include<stdio.h>
#include<math.h>
int main()
{
double n,p;int m;
printf(“请输入概率(P)和建造次数(M)”);
scanf(“%lf,%d”,&p,&m);
n=pow(1-p,m-1);
n=p*n;
printf(“%.12f”,n);
return 0;
}
【程序运行环境】:C++
【数学原理】
此问题部分相当于:连续干同一件事情若干次,至少成功一次的概率是多少。此时,我们先要计算:一次也没成功的概率是多少。(例:这次活动我在第30发的时候抽出了自己的第一只易北。已知易北的建造概率为2.5%,即我在前29发全空,在第三十发建造出来。因此,我首先需要得到我连空29发的概率)。而到了最后一发,我以正常概率建造出了目标舰船,随即需要在得到的“n”上面在乘以舰船建造概率。由此,我们可以得到本轮抽卡的概率情况。
【程序原理】
1、由于程序需要进行幂运算,因此需要在程序前部设定:#include<math.h>
2、为考虑到某些“非酋”,小数点后位数可能相当巨大。故需要“double”“long float”等保证运行。
【程序问题】
1、程序相对简单,仅可以支持对固定概率的计算,无法将大小保底(原神)、锚定构筑(少女前线)等较复杂的情况纳入考虑范围之内。目前(对我来说)仅可以用于:碧蓝航线抽卡、灰烬战线出金的情况。
2、程序目前仅可以适配于C++环境,暂无法转换为exe文件,无法大规模推广。
3、由于编译器问题,输入数据的时候应保持英文键盘状态。
要期末考了
编程好难啊…….