Случайный
Трейт Random должен быть реализован всеми генераторами случайных чисел. Единственный метод, который вам нужно реализовать, это fun ref next(): 64. После реализации этого метода, трейт Random предоставляет реализации по умолчанию для преобразований в другие числовые типы.
trait ref Random
Конструкторы
create
Создать со заданным зерном. Возвращаемые значения детерминированы для данного зерна.
new ref create( x: U64 val = 5489, y: U64 val = 0) : Random ref^
Параметры
Возвращаемое значение
- Случайный ссылка^
Открытые функции
has_next
Если используется как итератор, у него всегда есть следующее значение.
fun tag has_next() : Bool val
Возвращаемое значение
- Bool значение
next
Случайное целое число в интервале [0, 2^64)
fun ref next() : U64 val
Возвращаемое значение
- U64 значение
u8
Случайное целое число в интервале [0, 2^8)
fun ref u8() : U8 val
Возвращаемое значение
- U8 значение
u16
Случайное целое число в интервале [0, 2^16)
fun ref u16() : U16 val
Возвращаемое значение
- U16 значение
u32
Случайное целое число в интервале [0, 2^32)
fun ref u32() : U32 val
Возвращаемое значение
- U32 значение
u64
Случайное целое число в интервале [0, 2^64)
fun ref u64() : U64 val
Возвращаемое значение
- U64 значение
u128
Случайное целое число в интервале [0, 2^128)
fun ref u128() : U128 val
Возвращаемое значение
- U128 значение
ulong
Случайное целое число в интервале [0, ULong.max_value())
fun ref ulong() : ULong val
Возвращаемое значение
- ULong значение
usize
Случайное целое число в интервале [0, USize.max_value())
fun ref usize() : USize val
Возвращаемое значение
- USize значение
i8
Случайное целое число в интервале [-2^7, 2^7)
fun ref i8() : I8 val
Возвращаемое значение
- I8 значение
i16
Случайное целое число в интервале [-2^15, 2^15)
fun ref i16() : I16 val
Возвращаемое значение
- I16 значение
i32
Случайное целое число в интервале [-2^31, 2^31)
fun ref i32() : I32 val
Возвращаемое значение
- I32 значение
i64
Случайное целое число в интервале [-2^63, 2^63)
fun ref i64() : I64 val
Возвращаемое значение
- I64 значение
i128
Случайное целое число в интервале [-2^127, 2^127)
fun ref i128() : I128 val
Возвращаемое значение
- I128 значение
ilong
Случайное целое число в интервале [ILong.min_value(), ILong.max_value())
fun ref ilong() : ILong val
Возвращаемое значение
- ILong значение
isize
Случайное целое число в интервале [ISize.min_value(), ISize.max_value())
fun ref isize() : ISize val
Возвращаемое значение
- ISize значение
int_fp_mult[опционально N: ((U8 значение | U16 значение | U32 значение | U64 значение | U128 значение | ULong значение | USize значение) & Real[N] значение)]
Случайное целое число в интервале [0, n)
fun ref int_fp_mult[optional N: ((U8 val | U16 val | U32 val |
U64 val | U128 val | ULong val |
USize val) & Real[N] val)](
n: N)
: N
Параметры
- n: N
Возвращаемое значение
- N
int[опционально N: ((U8 значение | U16 значение | U32 значение | U64 значение | U128 значение | ULong значение | USize значение) & Real[N] значение)]
Случайное целое число в интервале [0, n)
Использует инверсию с фиксированной точкой, если платформа поддерживает родные 128-битные операции, иначе использует умножение с плавающей точкой.
fun ref int[optional N: ((U8 val | U16 val | U32 val |
U64 val | U128 val | ULong val |
USize val) & Real[N] val)](
n: N)
: N
Параметры
- n: N
Возвращаемое значение
- N
int_unbiased[опционально N: ((U8 значение | U16 значение | U32 значение | U64 значение | U128 значение | ULong значение | USize значение) & Real[N] значение)]
Случайное целое число в интервале [0, n)
Не смещен при малых значениях n как int.
fun ref int_unbiased[optional N: ((U8 val | U16 val | U32 val |
U64 val | U128 val | ULong val |
USize val) & Real[N] val)](
n: N)
: N
Параметры
- n: N
Возвращаемое значение
- N
real
Случайное число в интервале [0, 1)
fun ref real() : F64 val
Возвращаемое значение
- F64 значение
shuffle[A: A]
Перемешивает элементы массива в случайном порядке, изменяя массив.
fun ref shuffle[A: A]( array: Array[A] ref) : None val
Параметры
- array: Массив[A] ссылка
Возвращаемое значение
- None значение
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/random-Random