失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 基于Matlab的穿越火线-枪战王者(CF手游)王者飞行棋礼包收支分析

基于Matlab的穿越火线-枪战王者(CF手游)王者飞行棋礼包收支分析

时间:2024-07-19 07:26:44

相关推荐

基于Matlab的穿越火线-枪战王者(CF手游)王者飞行棋礼包收支分析

基于Matlab的穿越火线-枪战王者(CF手游)王者飞行棋礼包收支分析

前言仿真假设部分仿真结果相关界面仿真程序运行结果后语

本文章已有改进版,请戳链接【改进】基于Matlab的穿越火线-枪战王者(CF手游)王者飞行棋礼包收支分析观看。

前言

最近,枪战王者更新了一个新的礼包玩法——王者飞行棋,玩法看着非常诱惑,但实际玩一局需要多少钱呢?我根据相关玩法规则,写了一个Matlab仿真程序,通过这个程序,我们共同来探究一下,一共需要多少钻石,才能拿到喜欢的那把在终点的武器

仿真假设

模型中的一些假设如下:

1、因为只有前20个骰子是125个钻石一个,而骰子打包10个一起买的价格是2380,所以模型中假设投一次骰子需要238个钻石。

2、因为不知道概率进终点的概率到底是多少,按照马哥尿性,假设此概率为0,即必须转够20圈才能进入终点。

3、因为不同的起点用的地图是一样的,只是顺序不一样,所以模型所假设的以蓝色为起点,与以它颜色作为起点是等效的,结果应该相差无几。

4、为了得到更普遍的情况,仿真时一共进行了1e7(即一千万)局。

部分仿真结果

我知道各位看这篇文章是为了什么,所以把仿真结果的钻石部分提前放在这里,详细结果请到文章末尾观看。

仿真结果以(平均值±标准差)的形式表示:

完成一局游戏(指到达终点)所需要的钻石为:17023.1237 ± 1596.9012个

根据3σ准则:

数值分布在(μ-σ,μ+σ)中的概率为0.6827

数值分布在(μ-2σ,μ+2σ)中的概率为0.9545

数值分布在(μ-3σ,μ+3σ)中的概率为0.9973

也就是说:所需要的钻石

分布在15426~18620的概率为68.27%;

分布在13829~7的概率为95.45%;

分布在12232~21814的概率为99.73%。

相关界面

王者飞行器游戏界面

骰子购买界面

仿真程序

~仿真时使用的软件是Matlab Ra~

小声吐槽一下,竟然没有Matlab的语法高亮,只能用java的凑合一下。

%{本项目用于分析枪战王者手游,王者飞行器游戏的相关收获与付出另外,因为官方并没有公开在四个特殊点处进入终点的概率,所以假设这个概率为0%}die = 1e7; %尝试的次数times_each = zeros(1,die); %每局丢骰子次数dia_eaca = zeros(1,die); %每局需要的钻石数dia_each = zeros(1,die); %每局当前的钻石数,如果负数则表示消耗的钻石数shishen_each = zeros(1,die);%每局获得M4A1——死神的次数baolei_each = zeros(1,die); %每局获得加特林——堡垒的次数jingtong_each = zeros(1,die);%每局获得的精通点bfzcbx_each = zeros(1,die); %每局获得冰封珍藏宝箱的个数mlj_each = zeros(1,die); %每局获得马来剑——毁灭的次数dszc_each = zeros(1,die); %每局获得大圣珍藏宝箱的个数hmzc_each = zeros(1,die); %每局获得毁灭珍藏宝箱的个数shayin_each = zeros(1,die); %每局获得沙鹰——修罗永久的次数dyhzc_each = zeros(1,die); %每局获得地狱火珍藏的个数scste_each = zeros(1,die); %每局获得双持斯泰尔——天使的次数parfor i = 1:diedia = 0; %当前的钻石数,如果负数则表示消耗的钻石数place = 1; %当前旗子的位置shishen = 0;%获得M4A1——死神的次数baolei = 0; %获得加特林——堡垒的次数jingtong = 0; %获得的精通点bfzcbx = 0; %获得冰封珍藏宝箱的个数mlj = 0; %获得马来剑——毁灭的次数dszc = 0; %获得大圣珍藏宝箱的个数hmzc = 0; %获得毁灭珍藏宝箱的个数shayin = 0; %获得沙鹰——修罗永久的次数dyhzc = 0; %获得地狱火珍藏的个数scste = 0; %获得双持斯泰尔——天使的次数%开始丢骰子round = 0; %当前的圈数times = 0;while 1times = times + 1;place = place + unidrnd(6);dia = dia - 238; %每投一次需要238个钻石if place >= 25 %如果大于等于25说明转了一圈place = place - 24;round = round + 1;endif round == 20%满20圈就必然进入终点break;endswitch placecase 1dia = dia + 280;case 2 shishen = shishen + 1;case 3dia = dia + 150;place = place + 6;case 4baolei = baolei + 1;case 5jingtong = jingtong + 1000;case 6dia = dia + 100;case 7dia = dia + 280;case 8bfzcbx = bfzcbx + 2;case 9dia = dia + 150;place = place + 6;case 10mlj = mlj + 1;case 11dszc = dszc + 2;case 12dia = dia + 100;case 13dia = dia + 280;case 14hmzc = hmzc + 1;case 15dia = dia + 150;place = place + 6;case 16shayin = shayin + 1;case 17dyhzc = dyhzc + 2;case 18dia = dia + 100;case 19dia = dia + 280;case 20hmzc = hmzc + 1;case 21dia = dia + 150;case 22scste = scste + 1;case 23dszc = dszc + 1;case 24dia = dia + 100;endendtimes_each(i) = times;dia_each(i) = dia;shishen_each(i) = shishen;baolei_each(i) = baolei;jingtong_each(i) = jingtong;bfzcbx_each(i) = bfzcbx;mlj_each(i) = mlj;dszc_each(i) = dszc;hmzc_each(i) = hmzc;shayin_each(i) = shayin;dyhzc_each(i) = dyhzc;scste_each(i) = scste;enddisp(['一共进行了' num2str(die) '局']);disp(['钻石_平均±标准差=' num2str(mean(dia_each)) ' ± ' num2str(std(dia_each))]);disp(['死神_平均±标准差=' num2str(mean(shishen_each)) ' ± ' num2str(std(shishen_each))]);disp(['堡垒_平均±标准差=' num2str(mean(baolei_each)) ' ± ' num2str(std(baolei_each))]);disp(['精通_平均±标准差=' num2str(mean(jingtong_each)) ' ± ' num2str(std(jingtong_each))]);disp(['冰封箱_平均±标准差=' num2str(mean(bfzcbx_each)) ' ± ' num2str(std(bfzcbx_each))]);disp(['马来剑_平均±标准差=' num2str(mean(mlj_each)) ' ± ' num2str(std(mlj_each))]);disp(['大圣箱_平均±标准差=' num2str(mean(dszc_each)) ' ± ' num2str(std(dszc_each))]);disp(['毁灭箱_平均±标准差=' num2str(mean(hmzc_each)) ' ± ' num2str(std(hmzc_each))]);disp(['沙鹰_平均±标准差=' num2str(mean(shayin_each)) ' ± ' num2str(std(shayin_each))]); disp(['地狱火箱_平均±标准差=' num2str(mean(dyhzc_each)) ' ± ' num2str(std(dyhzc_each))]); disp(['斯泰尔_平均±标准差=' num2str(mean(scste_each)) ' ± ' num2str(std(scste_each))]); disp('~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~');disp(['钻石_方差=' num2str(var(dia_each))]);disp(['死神_方差=' num2str(var(shishen_each))]);disp(['堡垒_方差=' num2str(var(baolei_each))]);disp(['精通_方差=' num2str(var(jingtong_each))]);disp(['冰封箱_方差=' num2str(var(bfzcbx_each))]);disp(['马来剑_方差=' num2str(var(mlj_each))]);disp(['大圣箱_方差=' num2str(var(dszc_each))]);disp(['毁灭箱_方差=' num2str(var(hmzc_each))]);disp(['沙鹰_方差=' num2str(var(shayin_each))]); disp(['地狱火箱_方差=' num2str(var(dyhzc_each))]); disp(['斯泰尔_方差=' num2str(var(scste_each))]); figure(1);title('每局需要消耗的钻石散点图');plot(dia_each,'.');figure(2);title('每局丢骰子次数散点图');plot(times_each,'.');

运行结果

以下为程序的详细运行结果,表示在玩一局完整的飞行棋后的收获。

结果同样使用(平均值±标准差)的形式表示。

钻石的负号表示需要消耗钻石。

一共进行了10000000局钻石_平均±标准差=-17023.1237 ± 1596.9012死神_平均±标准差=5.6936 ± 2.0133堡垒_平均±标准差=4.5207 ± 1.8745精通_平均±标准差=4457.2663 ± 1862.6936冰封箱_平均±标准差=7.7521 ± 3.5388马来剑_平均±标准差=4.5666 ± 1.8765大圣箱_平均±标准差=14.4385 ± 4.2696毁灭箱_平均±标准差=9.014 ± 2.7976沙鹰_平均±标准差=4.4402 ± 1.86地狱火箱_平均±标准差=8.8393 ± 3.7125斯泰尔_平均±标准差=5.1688 ± 1.9569~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~钻石_方差=2550093.496死神_方差=4.0535堡垒_方差=3.5138精通_方差=3469627.3779冰封箱_方差=12.5233马来剑_方差=3.5212大圣箱_方差=18.2297毁灭箱_方差=7.8267沙鹰_方差=3.4596地狱火箱_方差=13.7824斯泰尔_方差=3.8296

还有

每局需要消耗的钻石散点图

每局丢骰子次数散点图

后语

不知道各位觉得我的分析对不对,玩这个王者飞行棋值不值呢?欢迎在评论区留言。

如果觉得《基于Matlab的穿越火线-枪战王者(CF手游)王者飞行棋礼包收支分析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。