コンテンツにスキップ

p-random

random モジュールは乱数生成、確率分布、シーケンスユーティリティを提供します。

use p-random as r

[0, 1] の範囲の浮動小数点数を返します。

use p-random as r
const x be r.random[] -- 例: 0.7312...

a から b(両端を含む)のランダムな整数を返します。

use p-random as r
r.randint[1; 6] -- 例: 4(サイコロ)

randrange[stop] / randrange[start; stop] / randrange[start; stop; step]

Section titled “randrange[stop] / randrange[start; stop] / randrange[start; stop; step]”

範囲からランダムな整数を返します。引数1つの場合は [0, stop)、2つの場合は [start, stop)、3つの場合は start, start+step, start+2*step, ... のうち stop 未満のランダムな値。

use p-random as r
r.randrange[10] -- 0..9
r.randrange[5; 10] -- 5..9
r.randrange[0; 20; 2] -- 偶数 0..18

確率 ptrue を返します(デフォルト: 0.5)。

use p-random as r
r.randbool[] -- 50% true
r.randbool[0.8] -- 80% true

k ビットのランダムな整数を返します。

use p-random as r
r.getrandbits[8] -- 0..255
r.getrandbits[16] -- 0..65535

n 個のランダムなバイト(0〜255)の配列を返します。

use p-random as r
r.randbytes[4] -- 例: [142, 55, 200, 13]

gauss のエイリアス。正規分布からランダムな数値を返します。

[a, b) の範囲のランダムな浮動小数点数を返します。

use p-random as r
r.uniform[1.0; 5.0] -- 例: 3.271...

三角分布からランダムな数値を返します。すべてのパラメータはオプション(デフォルト: lo=0, hi=1, mode=中間点)。

平均 mu、標準偏差 sigma のガウス(正規)分布からランダムな数値を返します。両方ともオプション(デフォルト: mu=0, sigma=1)。

use p-random as r
r.gauss[0; 1] -- 標準正規分布
r.gauss[100; 15] -- IQ的な分布

レート lambd の指数分布からランダムな数値を返します。

ガンマ分布からランダムな数値を返します。

[0, 1] のベータ分布からランダムな数値を返します。

対数正規分布からランダムな数値を返します。

フォン・ミーゼス分布(円周正規分布)からランダムな角度を返します。mu は平均角度(ラジアン)、kappa は集中度パラメータ。

パレート分布からランダムな数値を返します。

ワイブル分布からランダムな数値を返します。

配列からランダムな要素を返します。

use p-random as r
r.choice[[///red///; ///green///; ///blue///]] -- 例: "green"

k 個のランダムな要素の配列を返します(復元抽出)。

use p-random as r
r.choices[[///a///; ///b///; ///c///]; 5] -- 例: ["b", "a", "c", "a", "b"]

k 個の重み付きランダム選択を返します。各要素の確率はその重みに比例します。

use p-random as r
r.wchoices[[///rare///; ///common///]; [1; 9]; 10]
-- ほとんど "common"

要素をランダムに並べ替えた新しい配列を返します(元の配列は変更しません)。

use p-random as r
r.shuffle[[1, 2, 3, 4, 5]] -- 例: [3, 1, 5, 2, 4]

配列から k 個のユニークなランダム要素を返します(非復元抽出)。

use p-random as r
r.sample[[1, 2, 3, 4, 5]; 3] -- 例: [4, 1, 3]

二項分布からランダムな数値を返します: 確率 pn 回の試行における成功回数。

use p-random as r
r.binomial[10; 0.5] -- 例: 6

期待値 lambda のポアソン分布からランダムな数値を返します。

幾何分布からの値を返します: 確率 p で最初の成功を得るまでの試行回数。

val を [lo, hi] の範囲にクランプして返します。

use p-random as r
r.clamp[15; 0; 10] -- 10
r.clamp[-5; 0; 10] -- 0
r.clamp[5; 0; 10] -- 5

ab の間を係数 t(0〜1)で線形補間します。

use p-random as r
r.lerp[0; 100; 0.5] -- 50
r.lerp[0; 100; 0.25] -- 25