import "rand"

randパッケージは、擬似乱数ジェネレータを実装しています。

パッケージファイル

exp.go normal.go rand.go rng.go zipf.go

ExpFloat64関数

func ExpFloat64() float64

ExpFloat64は、rateパラメータ(ラムダ)が1である指数分布、すなわち1/ラムダ(1)を使い、範囲が(0, +math.MaxFloat64]である指数分布に従うfloat64を返します。異なるrateパラメータで分布を生成するために呼び出し側は次のようにして出力を調節することができます。

sample = ExpFloat64() / desiredRateParameter

Float関数

func Float() float

Floatは、擬似乱数をfloatで返します。範囲は[0.0,1.0)。

Float32関数

func Float32() float32

Float32は、擬似乱数をfloat32で返します。範囲は[0.0,1.0)。

Float64関数

func Float64() float64

Float64は、擬似乱数をfloat64で返します。範囲は[0.0,1.0)。

Int関数

func Int() int

Intは、マイナス値でない擬似乱数整数を返します。

Int31関数

func Int31() int32

Int31は、マイナス値でない31ビットの擬似乱数整数をint32で返します。

Int31n関数

func Int31n(n int32) int32

Int31nは、マイナス値でない擬似乱数をint32で返します。範囲は[0,n)。

Int63関数

func Int63() int64

Int63は、マイナス値でない63ビットの擬似乱数整数をint64で返します。

Int63n関数

func Int63n(n int64) int64

Int63nは、マイナス値でない擬似乱数をint64で返します。範囲は[0,n)。

Intn関数

func Intn(n int) int

Intnは、マイナス値でない擬似乱数をintで返します。範囲は[0,n)。

NormFloat64関数

func NormFloat64() float64

NormFloat64は、標準的な正規分布(mean = 0, stddev = 1)で、範囲[-math.MaxFloat64, +math.MaxFloat64]内の通常分散されるfloat64を返します。異なる正規分布を生成するために呼び出し側は次のようにして出力を調節することができます。

sample = NormFloat64() * desiredStdDev + desiredMean

Perm関数

func Perm(n int) []int

Permは、範囲[0,n)の整数を疑似乱数で並び替え、int型のn個のスライスとして返します。

Seed関数

func Seed(seed int64)

Seedは、与えたseed値を使ってジェネレータを初期化し、状態を決定します。

Uint32関数

func Uint32() uint32

Uint32は、32ビットの擬似乱数をuint32で返します。

Rand型

Randは、乱数のソースです。

type Rand struct {
    // contains unexported fields
}

New関数

func New(src Source) *Rand

Newは、srcの乱数を使用して別の乱数を生成する新しいRandを返します。

(*Rand) ExpFloat64関数

func (r *Rand) ExpFloat64() float64

ExpFloat64は、rateパラメータ(ラムダ)が1である指数分布、すなわち1/ラムダ(1)を使い、範囲が(0, +math.MaxFloat64]である指数分布に従うfloat64を返します。異なるrateパラメータで分布を生成するために呼び出し側は次のようにして出力を調節することができます。

sample = ExpFloat64() / desiredRateParameter

(*Rand) Float関数

func (r *Rand) Float() float

Floatは、擬似乱数をfloatで返します。範囲は[0.0,1.0)。

(*Rand) Float32関数

func (r *Rand) Float32() float32

Float32は、擬似乱数をfloat32で返します。範囲は[0.0,1.0)。

(*Rand) Float64関数

func (r *Rand) Float64() float64

Float64は、擬似乱数をfloat64で返します。範囲は[0.0,1.0)。

(*Rand) Int関数

func (r *Rand) Int() int

Intは、マイナス値でない擬似乱数整数を返します。

(*Rand) Int31関数

func (r *Rand) Int31() int32

Int31は、マイナス値でない31ビットの擬似乱数整数をint32で返します。

(*Rand) Int31n関数

func (r *Rand) Int31n(n int32) int32

Int31nは、マイナス値でない擬似乱数をint32で返します。範囲は[0,n)。

(*Rand) Int63関数

func (r *Rand) Int63() int64

Int63は、マイナス値でない63ビットの擬似乱数整数をint64で返します。

(*Rand) Int63n関数

func (r *Rand) Int63n(n int64) int64

Int63nは、マイナス値でない擬似乱数をint64で返します。範囲は[0,n)。

(*Rand) Intn関数

func (r *Rand) Intn(n int) int

Intnは、マイナス値でない擬似乱数をintで返します。範囲は[0,n)。

(*Rand) NormFloat64関数

func (r *Rand) NormFloat64() float64

NormFloat64は、標準的な正規分布(mean = 0, stddev = 1)で、範囲[-math.MaxFloat64, +math.MaxFloat64]内の通常分散されるfloat64を返します。異なる正規分布を生成するために呼び出し側は次のようにして出力を調節することができます。

sample = NormFloat64() * desiredStdDev + desiredMean

(*Rand) Perm関数

func (r *Rand) Perm(n int) []int

Permは、範囲[0,n)の整数を疑似乱数で並び替え、int型のn個のスライスとして返します。

(*Rand) Seed関数

func (r *Rand) Seed(seed int64)

Seedは、与えたseed値を使ってジェネレータを初期化し、状態を決定します。

(*Rand) Uint32関数

func (r *Rand) Uint32() uint32

Uint32は、32ビットの擬似乱数をuint32で返します。

Source型

Sourceは、範囲[0, 1<<63)の疑似乱数のint64値が一様に分布しているソースを表します。

type Source interface {
    Int63() int64
    Seed(seed int64)
}

NewSource関数

func NewSource(seed int64) Source

NewSourceは、与えた値をシードとして新しい擬似乱数ソースを返します。

Zipf型

Zipfは、Zipf分布の確率変数を生成します。

type Zipf struct {
    // contains unexported fields
}

NewZipf関数

func NewZipf(r *Rand, s float64, v float64, imax uint64) *Zipf

NewZipfは、s>1、k>=0、v>=1のとき(v+k)**(-s)に比例する、[0, imax]範囲の確率変数p(k)を生成するZipfを返します。

(*Zipf) Uint64関数

func (z *Zipf) Uint64() uint64

Uint64は、Zipfオブジェクトによって作成されたZipf分布から得られる値を返します。