!トランプカードのリフルシャッフル(半分にしたカードを1枚ずつ交互に重ねていく) !例. 10枚の場合 ! 0 回目 1 2 3 4 5 6 7 8 9 10 ! 1 回目 6 1 7 2 8 3 9 4 10 5 ! 2 回目 3 6 9 1 4 7 10 2 5 8 ! 3 回目 7 3 10 6 2 9 5 1 8 4 ! 4 回目 9 7 5 3 1 10 8 6 4 2 ! 5 回目 10 9 8 7 6 5 4 3 2 1 ※反転 ! 6 回目 5 10 4 9 3 8 2 7 1 6 ! 7 回目 8 5 2 10 7 4 1 9 6 3 ! 8 回目 4 8 1 5 9 2 6 10 3 7 ! 9 回目 2 4 6 8 10 1 3 5 7 9 ※偶数、奇数 !10 回目 1 2 3 4 5 6 7 8 9 10 ※元に戻る ! : ! :
FUNCTION xRND !一様乱数 ※線形合同法(乗算合同法) LET seed=MOD(a*seed,m) !Xn+1=(a*Xn+c) mod m LET xRND=seed/m ![0,1) END FUNCTION
LET N=10 !カードの枚数 ※偶数
LET a=N/2+1 !乗数 LET m=N+1 !法 LET seed=1 !カードの列位置 2,3,4,…,10で確認すると、、、
PRINT seed FOR i=1 TO N PRINT xRND*m !乱数列 NEXT i
END
!参考 http://hp.vector.co.jp/authors/VA008683/Random.htm
|