最近复习了一下概率论
以前学的时候,基本没有用过,题目也没刷多少。考试考完就再也没用过了。其实概率和统计还是很有用的。
通过这种实际例子的学习才更加直观。
无保底卡池,以碧蓝航线为例
UR,SSR,SR的抽卡概率分别是0.012,0.02,0.025
先说结论,
-
200发内抽到UR的概率高达91%
-
150发内抽到UR的概率有83%
所以说150抽还抽不到差不多就属于非洲人范围了。200发抽不到,十个人里面有一个,在大的人群基数里面其实也挺多了。
200发SSR的概率是98%,50个人里面有一个200发抽不到的人
关于卡池毕业,以最近的新泽西卡池为例,up的卡的概率分别是0.012,0.02,0.02,0.025,这4张卡抽到就算毕业了。
200发内毕业的概率约为87%
150发内毕业的概率为74%
差不多10个人里面有一个人不毕业,所以200发没毕业的人其实也有挺多的。
01.抽某一张卡无保底措施情况的模拟
我们假设抽卡概率是独立的
下面是要用到的函数
using Plots
plotly()
# 计算在第n次抽卡抽中的概率
function dropProbilityN(gachaTimes,dropRate)
return (1-dropRate)^(gachaTimes-1)*dropRate
end
# 第1到n次抽中概率的数组
function dropProbilityNArr(gachaTimes,dropRate)
arr=[]
for i in 1:gachaTimes
push!(arr,dropProbilityN(i,dropRate))
end
return arr
end
# n次之前抽中概率的数组
function dropProbilityBeforeNArr(gachaTimes,dropRate)
arr=dropProbilityNArr(gachaTimes,dropRate)
return cumsum(arr)
end
# 计算n发以前抽中的概率
function dropProbilityBeforeN(gachaTimes,dropRate)
arr=dropProbilityBeforeNArr(gachaTimes,dropRate)
return arr[gachaTimes]
end
设定抽卡次数和掉落率,然后绘图
# 抽卡次数
gachaTimes =200
# 卡牌掉落率
dropRate = 0.012
plot(dropProbilityBeforeNArr(gachaTimes,dropRate))
下面是0.0012概率的角色,在200抽内的掉落概率曲线

02. 抽多张卡卡池无保底措施毕业概率的模拟
由独立性,可知,卡池毕业的概率等于每张卡抽出概率的乘积
定义抽卡次数和卡池
gachaTimes2=200
dropRateList=[0.012,0.02,0.02,0.025]
# 卡池所有卡抽卡200抽出货概率曲线的列表
function multiDropProbilityBeforeNArr(gachaTimes,dropRateList)
arr=[]
for i in dropRateList
push!(arr,dropProbilityBeforeNArr(gachaTimes,i))
end
return arr
end
# 把每张卡抽出概率相乘,得到毕业概率的列表
function graduateBeforeNArr(gachaTimes,dropRateList)
arr=multiDropProbilityBeforeNArr(gachaTimes2,dropRateList)
res=[]
for i in 1:gachaTimes
graduateN=1
for j in 1:length(dropRateList)
graduateN*=arr[j][i]
end
push!(res,graduateN)
end
return res
end
# 只计算毕业概率,只返回一个毕业概率值
function graduateBeforeN(gachaTimes,dropRateList)
graduateN=1
for i in dropRateList
graduateN*=dropProbilityBeforeN(gachaTimes,i)
end
return graduateN
end
进行绘图
plot(graduateBeforeNArr(gachaTimes2,dropRateList))
下面是新泽西卡池毕业的概率曲线

网友评论