連勝数と勝率の関係
10連勝ペースは勝率80%くらいで達成できると直観的に思ったが、確認したかったあんも.icon
正しそう
シミュレーションは結構乱暴にやっている
まとめて50回試行して、連勝数をスタックさせる
50連勝以上してしまったときに漏らしてしまう
現実的にありえない確率だけど
$ 0.8^{50}\approx 1.4272476927059638\times 10^{-5}\approx 0.00143\%
https://gyazo.com/19944e6022a4bcda605127988775de30
code:simulate_winning_streak.jl
using Plots, StatsBase, Printf
# ゲームのシミュレーション関数
function simulateGame(win_probability)
end
# 連勝数のシミュレーション関数
function simulateWinningStreak(num_games, win_probability)
streak = 0
max_streak = 0
for _ in 1:num_games
if simulateGame(win_probability)
streak += 1
max_streak = max(streak, max_streak)
else
streak = 0
end
end
return max_streak
end
# 連勝数のシミュレーション実行関数
function runSimulation(num_simulations, num_games, win_probability)
streaks = Int[]
for _ in 1:num_simulations
push!(streaks, simulateWinningStreak(num_games, win_probability))
end
return streaks
end
# ヒストグラムの作成と表示関数
function plotHistogram(streaks, num_games, win_probability)
bin_range = -0.5:(num_games+0.5)
hist = histogram(streaks,
bins=bin_range,
normalization=:probability,
legend=false,
xlabel="Winning Streak",
ylabel="Probability",
title="Winning Streak Simulation")
win_rate_text = @sprintf("Win Probability: %.2f", win_probability)
# 最頻値の計算
mode_value = mode(streaks)
# 最頻値の注釈を追加
mode_text = @sprintf("Mode: %d", mode_value)
end
# シミュレーションのパラメータ設定と実行
num_simulations = 10000 # シミュレーション回数
num_games = 50 # 1回のゲームでの試行回数
win_probability = 0.80 # 勝率
streaks = runSimulation(num_simulations, num_games, win_probability)
# ヒストグラムの作成と表示
plotHistogram(streaks, num_games, win_probability)