もどる aの日記

プレイヤーデータプロフィール日記最近の出来事ダンジョンスコア紹介リンク
記事一覧新着ブログ人気ブログ

3×3マップ平均歩数計算 2013-04-11 18:58 a ★0★ 638 pv
10万回実験した結果
平均:25.02157歩
20歩以下の回数:41189回(41.2%)

どうやら平均は25歩に収束するみたい?
ということは数学的に解決できるのか?


以下俺用メモ
配列は1から順に現在地XY階段XY目的地XY
Nはカウンター
XはA(X)代入簡略化用
Yは階段発見チェックフラグ
Wは一番近い未探索画面チェックフラグ
Kはループ脱出用フラグ
(サブルーチン中からメインへGOTOで飛べないらしい)
STEPは現在までの歩数
SSはSTEPの合計
Pが20歩以下カウント用



思いつくままに記述してるので、かなり無駄は多い。
(サブルーチンからNEXT Nへ飛べないので、途中で終わっても、結局最後までメインをすすむとか)


RANDOMIZE
DIM A(1 to 6)
FOR N=1 to 100000
FOR X=1 to 4
A(X)=INT(RND*29)+1
NEXT X
STEP=0
K=0
GOSUB 3
FOR X=1 to 2
IF A(X)<15 then
A(X+4)=10
ELSE
A(X+4)=20
END IF
NEXT X
IF ABS(A(1)-A(5))<ABS(A(2)-A(6)) then
STEP=STEP+ABS(A(1)-A(5))
A(1)=A(5)
W=0
ELSE
STEP=STEP+ABS(A(2)-A(6))
A(2)=A(6)
W=1
END IF
GOSUB 3
IF W=1 then
STEP=STEP+ABS(A(1)-A(5))
A(1)=A(5)
ELSE
STEP=STEP+ABS(A(2)-A(6))
A(2)=A(6)
END IF
GOSUB 3
A(1)=30-A(1)
STEP=STEP+10
GOSUB 3
A(2)=30-A(2)
STEP=STEP+10
GOSUB 3
A(1)=30-A(1)
STEP=STEP+10
GOSUB 3
NEXT N
PRINT SS/(N-1)
PRINT P
STOP

3
Y=0
FOR X=1 to 2
IF A(X)<11 then
IF A(X+2)<11 then
Y=Y+1
GOTO 2
END IF
END IF
IF A(X)>19 then
IF A(X+2)>19 then
Y=Y+1
GOTO 2
END IF
END IF
IF A(X)>9 AND A(X)<21 then
IF A(X+2)>9 AND A(X+2)<21 then
Y=Y+1
GOTO 2
END IF
END IF
2
NEXT X
IF Y=2 AND K=0 then
K=1
STEP=STEP+ABS(A(1)-A(3))+ABS(A(2)-A(4))
SS=SS+STEP
IF STEP<21 then LET P=P+1
END IF
RETURN
END

プレイヤー:
パスワード:
コメント: