「シートバッテングを極める部屋」の編集履歴(バックアップ)一覧に戻る
シートバッテングを極める部屋 - (2018/02/19 (月) 08:30:34) の編集履歴(バックアップ)
シートバッティングを極める部屋
投手も打者も『ガチ』でシートバッティングしたらどうなるか検証。
乱数要素100%なので、その辺がわかってない人は今すぐページバックしてね。
+
|
※独自検証注意※ |
前提条件
1) 打者の勝利条件:ホームラン・ヒット・四球
2) 投手の勝利条件:三振
3) 投手のストライク率(どの程度ストライクを投げるか)は一定
4) 打者のスイング率(どの程度スイングするか)は一定
プログラム(見たい人だけ)
+
|
VBA |
Sub Macro1()
'
' Macro1 Macro
Dim mat As Integer '試合数
Dim win As Integer '投手勝利回数
Dim res As Double '投手勝率
Dim S As Integer 'ストライク
Dim B As Integer 'ボール
Dim PITCH As Double 'ストライク率
Dim BATER As Double 'スイング率
Dim x As Double
Dim y As Double
For i = 0 To 10
PITCH = ActiveSheet.Cells(23 + i, 7)
BATER = ActiveSheet.Cells(23 + i, 9)
mat = 0
win = 0
For mat = 1 To 10000 '10000回繰返し
'①試合前処理
S = 0
B = 0
'②試合中処理
Do While S < 3 And B < 4
ActiveSheet.Cells(1, 1) = 1 '乱数更新用
'変数読み
P_S = ActiveSheet.Cells(20, 7) '乱数(0.00~1.00)
B_S = ActiveSheet.Cells(20, 9) '乱数(0.00~1.00)
P_C = ActiveSheet.Cells(21, 7) '乱数(0.00~1.00)
B_C = ActiveSheet.Cells(21, 9) '乱数(0.00~1.00)
If (PITCH >= P_S) Then '投手・ストライク選択
If (BATER >= B_S) Then '打者・スイング選択
If (B_C >= 0.75) Then
B = 100
Else
S = S + 1
End If
Else '打者・見送り選択
S = S + 1
End If
Else '投手・ボール選択
If (BATER >= B_S) Then '打者・スイング選択
S = S + 1
If (S >= 3 And B_C >= 0.75) Then S = 2 'ファウル続行
Else '打者・見送り選択
B = B + 1
End If
End If
Loop
'③試合後処理
If S >= 3 Then win = win + 1
Next
mat = mat - 1
res = win / mat
ActiveSheet.Cells(23 + i, 11) = res
Next
End Sub
|
試行結果(カウント別)
+
|
表のみかた |
各カウントについて、
投手のストライク率・打者のスイング率を元に10000回のフリーバッティングを行う。
その結果を、打者の勝利条件(打者の出塁率)基準で数値化する。最小0.000~最大1.000
例えば、0ストライク・0ボールで
投手のストライク率=50%・打者のスイング率=50%とすると、
打者の勝率は0.269(26.9%)。逆に投手の勝率は0.731(73.1%)となる。
投手がどれだけストライクを選択するか
打者がどれだけスイングするのか(経験則で)わかっていれば、
各カウント毎に投手or打者の勝率を求めることができる。
|
試行結果(まとめ)
+
|
グラフのみかた |
各カウントが推移するとともに、打者or投手の勝率がどの程度変化するか示す。
表1と同じく、打者の勝利条件(打者の出塁率)基準で数値化する。最小0.000~最大1.000
|
考察
あとで
|
ご意見・ご感想どうぞ
- あ~こ↓れ↑かぁ。ええやん -- 名無しさん (2018-02-19 08:30:34)