Skip to content

GLib.Rand

record (struct)

The GRand struct is an opaque data structure. It should only be accessed through the g_rand_* functions.

Constructors

new

@classmethod
def new(cls) -> Rand

Creates a new random number generator initialized with a seed taken either from /dev/urandom (if existing) or from the current time (as a fallback).

On Windows, the seed is taken from rand_s().

new_with_seed

@classmethod
def new_with_seed(cls, seed: int) -> Rand

Creates a new random number generator initialized with seed.

Parameters:

  • seed — a value to initialize the random number generator

new_with_seed_array

@classmethod
def new_with_seed_array(cls, seed: int, seed_length: int) -> Rand

Creates a new random number generator initialized with seed.

Parameters:

  • seed — an array of seeds to initialize the random number generator
  • seed_length — an array of seeds to initialize the random number generator

Methods

copy

def copy(self) -> Rand

Copies a Rand into a new one with the same exact state as before. This way you can take a snapshot of the random number generator for replaying later.

double

def double(self) -> float

Returns the next random #gdouble from rand_ equally distributed over the range [0..1).

double_range

def double_range(self, begin: float, end: float) -> float

Returns the next random #gdouble from rand_ equally distributed over the range [begin..end).

Parameters:

  • begin — lower closed bound of the interval
  • end — upper open bound of the interval

free

def free(self) -> None

Frees the memory allocated for the Rand.

int_

def int_(self) -> int

Returns the next random #guint32 from rand_ equally distributed over the range [0..2^32-1].

int_range

def int_range(self, begin: int, end: int) -> int

Returns the next random #gint32 from rand_ equally distributed over the range [begin..end-1].

Parameters:

  • begin — lower closed bound of the interval
  • end — upper open bound of the interval

set_seed

def set_seed(self, seed: int) -> None

Sets the seed for the random number generator Rand to seed.

Parameters:

  • seed — a value to reinitialize the random number generator

set_seed_array

def set_seed_array(self, seed: int, seed_length: int) -> None

Initializes the random number generator by an array of longs. Array can be of arbitrary size, though only the first 624 values are taken. This function is useful if you have many low entropy seeds, or if you require more then 32 bits of actual entropy for your application.

Parameters:

  • seed — array to initialize with
  • seed_length — length of array