J言語でランダムな数値を得るには、?(はてな)を使います。
?10 8
二項動詞として?(はてな)を使うと、ランダムに重複なくピックアップしてくれて便利です。
4?10 1 9 5 8 10?10 3 4 5 2 7 1 0 6 9 8
さて、ということは?(はてな)の左辺は右辺の数字を超えないということです。
11?10
domain error |
?6 6 6 6 6 6 2 4 5 0 0 0言い忘れましたが、ゼロベースですので、1を足さないとさいころになりません。
1 + ?6 6 6 6 6 6 4 6 1 3 1 210?10のように数字をnとするとn?nという場合は、動詞を自分自身に作用させるという意味だと思うのですが、リフレックスの意味の副詞があって~(チルダ、tilde、ふにゃら)を使います。
?~6 NB.= 6?6と同じ意味 3 1 0 2 4 5ところで、Iversonの論文に
b=: ?.~ 6 The integers in random orderと書かれていて、え、この?(はてな)と~(チルダ)の間にある.(ドット)はなに? と思って調べたら、?(はてな)のあとに.(ドット)をつけたものはランダムのタネ(seed)が固定のものとのこと。
?.~6 0 1 5 4 3 2 ?.~6 0 1 5 4 3 2 ?.~6 0 1 5 4 3 2なるほどですね。ランダムかつ同じ数字が欲しい場合って、テストなんかではあり得る話だと思います。 以上