RANDOM

0以上Range未満の範囲にある乱数(整数)を返します。引数を省略した場合は、0以上1未満の乱数(小数点以下15桁)を返します。

構文
RANDOM( [Range] )
引数
Range
数値
戻値
0 <= X < Rangeの範囲にある乱数を返す

自作関数

FisherYates
配列をシャッフルします。

プログラム実行例

ランダムな数値を返す

0以上10未満のランダムな数値を返す。

PRINT RANDOM(10)
結果
5

0以上1未満の乱数を返す

PRINT RANDOM()
結果
0.146521859802306

マウスカーソルをランダムな位置に移動

DIM x = G_SCREEN_W DIM y = G_SCREEN_H MMV(RANDOM(x), RANDOM(y))

じゃんけん

player-com com
グー(0) チョキ(1) パー(2)
player グー(0) あいこ(0) 勝ち(-1) 負け(-2)
チョキ(1) 負け(1) あいこ(0) 勝ち(-1)
パー(2) 勝ち(2) 負け(1) あいこ(0)
(player-com+3) MOD 3 com
グー(0) チョキ(1) パー(2)
player グー(0) あいこ(0) 勝ち(2) 負け(1)
チョキ(1) 負け(1) あいこ(0) 勝ち(2)
パー(2) 勝ち(2) 負け(1) あいこ(0)
DIM janken[2] = "グー", "チョキ", "パー" DIM res[2] = "あいこ", "負け", "勝ち" REPEAT DIM player = SLCTBOX(SLCT_BTN OR SLCT_NUM, 0, "出す手を選んでください", janken) PRINT "プレイヤー<#TAB>" + janken[player] DIM com = RANDOM(3) // 0〜2の間でランダムな数値を取得 PRINT "コンピュータ<#TAB>" + janken[com] DIM n = (player - com + 3) MOD 3 // 【勝敗判定】0 : あいこ、1 : 負け、2 : 勝ち PRINT "結果<#TAB><#TAB>" + res[n] PRINT "----------" UNTIL n <> 0 // あいこ(0)以外になるまで続ける
結果
プレイヤー グー
コンピュータ グー
結果 あいこ
----------
プレイヤー チョキ
コンピュータ パー
結果 勝ち
----------

重み付きで数値を取得

5/10で「1」、3/10で「2」、2/10の確率で「3」を出現させます。

DIM str = "1111122233" FOR n = 1 TO 10 PRINT VAL(COPY(str, RANDOM(LENGTH(str)) + 1, 1)) NEXT
結果
2
2
1
1
3
1
1
3
3
1