ド素人さんへのお返事です。
打った、送ったの単純で、5000試合の平均を表示します。
1試合ごとの内訳は、PRINT文の注釈を削除すれば表示されます。
ただし、5000回試合の表示には時間がかかります。(実用的でない)
!打順考察のためのシミュレーション
DATA 0.2, 0.2, 0.3, 0.3, 0.3, 0.2, 0.2, 0.1, 0.1
!DATA 0.1, 0.2, 0.2, 0.3, 0.2, 0.1, 0.3, 0.2, 0.3
!DATA 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2
DIM D(9) !9人分の打率
MAT READ D
RANDOMIZE
LET N=5000 !試合数
FOR x=1 TO N
DIM SM(N) !総合得点
LET P=1 !打順
FOR w=1 TO 9 !9回まで
LET B=0 !塁の状態
LET S1=0 !得点
LET O=0
DO UNTIL O=3 !3アウトまで
!PRINT P;"番打者:";
IF RND<D(P) THEN !ヒットなら
LET t=INT(RND*10)+1 !長打率など ※1~10
SELECT CASE t
CASE 1,2,3,4
LET v=1
CASE 5,6,7
LET v=2
CASE 8,9
LET v=3
CASE ELSE
LET v=4
END SELECT
!PRINT v;"塁打", !1~4
LET B=B*10+1 !v塁打で走者を送る
LET S1=S1+INT(B/10^3)
LET B=MOD(B,10^3)
FOR i=0 TO v-2
LET B=B*10
LET S1=S1+INT(B/10^3)
LET B=MOD(B,10^3)
NEXT i
ELSE
LET O=O+1
!PRINT "アウト",
END IF
!PRINT USING "# %%%": S1,B !塁の状態
LET P=P+1 !次へ
IF P>9 THEN LET P=1
LOOP
!PRINT w;"回";S1;"点"
!PRINT
LET SM(w)=SM(w)+S1
NEXT w
NEXT x
LET S=0 !得点の分布
FOR w=1 TO 9
PRINT w;"回";SM(w)/N;"点"
LET S=S+SM(w)
NEXT w
PRINT "総合得点=";S/N
END