美文网首页
julia编程 无保底卡池毕业概率计算(例子 碧蓝航线)

julia编程 无保底卡池毕业概率计算(例子 碧蓝航线)

作者: mudssky | 来源:发表于2021-06-10 15:29 被阅读0次

最近复习了一下概率论

以前学的时候,基本没有用过,题目也没刷多少。考试考完就再也没用过了。其实概率和统计还是很有用的。

通过这种实际例子的学习才更加直观。

无保底卡池,以碧蓝航线为例

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抽内的掉落概率曲线

image-20210610152554939.png

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))

下面是新泽西卡池毕业的概率曲线

image-20210610152224163.png

相关文章

  • julia编程 无保底卡池毕业概率计算(例子 碧蓝航线)

    最近复习了一下概率论 以前学的时候,基本没有用过,题目也没刷多少。考试考完就再也没用过了。其实概率和统计还是很有用...

  • 碧蓝航线

    序章 “警报!西南方向传来大量异常电波!”总部的电报员对总指挥说 总指挥:“马上给我查查是怎么回事!” “是!” ...

  • Jupyter with Julia

    Julia语言入门 Julia的安装和运行 Julia程序语言介绍 Julia程序语言是一种计算机编程语言, 就像...

  • 高兴地,Julia 1.0发布

    Julia是一个新的,有野心的编程语言,特别适合科学计算,希望这是你深爱着的。 Julia语言下载 Julia语言...

  • 碧蓝航线免费脚本

    好心人写的免费脚本,就是不知道能用到什么时候。 运行环境 分辨率 720*1280 ,DPI 320 下载地址 链...

  • Julia 相似度分析小例

    原文链接 本文的示例主要来自于《Julia Programming Projects》中关于相似度计算的例子: 已...

  • julia编程 生日问题概率计算 班级有人和你生日重复的概率,

    班级里面遇上生日生日和你重复的人,你可能直觉上觉得生日重复是个小概率事件,实际上生日重复这个事件在一个班级里面发生...

  • Julia GPU 计算入门

    作为专门为科学计算设计的编程语言,Julia 在分布式、GPU 甚至 TPU 计算方面提供了许多丰富易用的特性。我...

  • 碾压 Python!为什么 Julia 速度这么快?

    短短几年,由 MIT CSAIL 实验室开发的编程语言 Julia 已然成为编程界的新宠,尤其在科学计算领域炙手可...

  • 碧蓝航线困难开荒心得

    组两个队,一个队以炮为主,不要鱼雷,用来道中清理,后排带速射炮,支援空母等快速装填的。 另一个队为BOSS队,以雷...

网友评论

      本文标题:julia编程 无保底卡池毕业概率计算(例子 碧蓝航线)

      本文链接:https://www.haomeiwen.com/subject/braueltx.html