我在做一个赔率计算器。我想打印出一个球员的最高连胜记录,以及连胜平均记录。
我指的连胜是指在对手赢1次之前,玩家连续赢了多少次,反之亦然。
我是40% vs 60%的赔率供参考。
while (nFlip <= 99) do
nFlip = nFlip + b
if math.random(0,4) < 2 then
countPlayer = countPlayer + b
--!!!!! How to record player streak and player average
print( "Player Wins" )
elseif math.random(0,4) < 3 then
countHouse = countHouse + b
--!!!!! How to record player streak and player average
print( "House Wins" )
end
end
如果连胜的定义是连续获胜的次数,那么计算它,并存储在一个表中。
local playerStreak = 0
local houseStreak = 0
local playerStreaks = {}
local houseStreaks = {}
local nFlip = 0
math.randomseed(os.time())
while nFlip <= 99 do
nFlip = nFlip + 1
local r = math.random()
local playerWinProb = 0.4
if r < playerWinProb then -- player wins!
playerStreak = playerStreak + 1
if houseStreak > 0 then -- house won last, end of its streak
table.insert(houseStreaks, houseStreak)
houseStreak = 0
end
-- print( "Player Wins" )
else
houseStreak = houseStreak + 1
if playerStreak > 0 then -- house won last, end of its streak
table.insert(playerStreaks, playerStreak)
playerStreak = 0
end
-- print( "House Wins" )
end
end
table.sort(playerStreaks)
print('largest player streak:', playerStreaks[#playerStreaks])
table.sort(houseStreaks)
print('largest house streak:', houseStreaks[#houseStreaks])
在所有的投掷之后,你可以计算统计:
- 对于最大的球员连胜,搜索
playerStreaks
的最大值(我很懒,使用排序代替,不是那么有效,但也不坏);同样,对于最大的房屋间距 - 为平均值,将所有球员的连胜记录相加并除以
#playerStreaks
;类似于house streak - 等。