三国杀吧 关注:3,424,566贴子:89,871,929
  • 0回复贴,共1

获取普元的期望值

取消只看楼主收藏回复

将下面代码复制到 https://www.bejson.com/runcode/lua/ 然后点运行就出结果了。
local a = {40, 98, 156, 196, 236, 276, 316, 414, 454, 494, 534, 574, 672, 712, 752, 792, 832, 872, 902, 960, 1000}
local b = {{5,0,0},{4,1,0},{4,0,1},{3,2,0},{3,1,1},{3,0,2},{2,3,0},{2,2,1},{2,1,2},{2,0,3},{1,4,0},{1,3,1},{1,2,2},{1,1,3},{1,0,4},{0,5,0},{0,4,1},{0,3,2},{0,0,5},{0,1,4},{0,2,3}}
local c
local d
local jifen = 0 -- 5连夺宝积分
local jifen1 = 0 --获取普元需要总积分
local duobao = 0 --夺宝次数
local t_jf = 0 --1万次花费夺宝总元宝
local cs = 100
local min_jf = 1000000
a[0]=0
b[0]={0,0,0}
for i=1,cs do
while(true )do
c= math.random(0,1000)
for i=0,#a-1 do
if (c>a[i] and c < a[i+1]) then
d =i + 1
--print(c.."--"..d)
end
end
duobao = duobao + 1
jifen = jifen + b[d][1]*3+b[d][2]*2+b[d][3]*1
if (b[d][1]==3) then
jifen = jifen + 3
end
if (b[d][1]==4) then
jifen = jifen + 15
end
if (b[d][1]==5) then
jifen = jifen + 120
end
if (b[d][2]==3) then
jifen = jifen + 2
end
if (b[d][2]==4) then
jifen = jifen + 10
end
if (b[d][2]==5) then
jifen = jifen + 80
end
if (b[d][3]==3) then
jifen = jifen + 1
end
if (b[d][3]==4) then
jifen = jifen + 5
end
if (b[d][3]==5) then
jifen = jifen + 60
end
c = math.random(0,1000)
if (c <= 322 and c >0) then
t_jf = t_jf - 118
elseif (c > 322 and c >446) then
t_jf = t_jf - 118*2
end
jifen1 = jifen1 + jifen
--print(jifen)
if (jifen1>=8500) then
--print("共计夺宝:"..duobao.."次,本次花费元宝:"..duobao*20*118)
if (min_jf > duobao*20*118) then
min_jf = duobao*20*118
end
t_jf = t_jf + duobao*20*118
jifen = 0
jifen1 = 0
duobao = 0
break
end
jifen=0
end
end
print("获取脸最好第一次:"..min_jf)
print("获取普元期望值:"..t_jf/cs)


IP属地:山西1楼2022-07-30 21:20回复