extra-rand
v0.3.1
Published
Yet another random library
Downloads
1,281
Readme
extra-rand
Yet another random library.
Install
npm install --save extra-rand
# or
yarn add extra-rand
API
interface IRandomNumberGenerator {
next(): number // [0, 1)
}
random
function random(min: number, max: number): number
function random(generator: IRandomNumberGenerator, min: number, max: number): number
The function returns a number in the range [min, max)
.
randomInt
function randomInt(min: number, max: number): number
function randomInt(generator: IRandomNumberGenerator, min: number, max: number): number
The function returns an integer in the range [Math.ceil(min), Math.floor(max))
.
randomIntInclusive
function randomIntInclusive(min: number, max: number): number
function randomIntInclusive(
generator: IRandomNumberGenerator
, min: number
, max: number
): number
The function returns an integer in the range [Math.ceil(min), Math.floor(max)]
.
randomBool
function randomBool(probabilityOfTrue: number): boolean
function randomBool(generator: IRandomNumberGenerator, probabilityOfTrue: number): boolean
randomIndexByWeight
function randomIndexByWeight(weights: NonEmptyArray<number>): number
function randomIndexByWeight(
generator: IRandomNumberGenerator
, weights: NonEmptyArray<number>
): number
The function returns an index of one of weights.
randomWeighted
interface IWeighted {
weight: number
}
function randomWeighted<T extends IWeighted>(values: NonEmptyArray<T>): T
function randomWeighted<T extends IWeighted>(
generator: IRandomNumberGenerator
, values: NonEmptyArray<T>
): T
randomByWeightModel
type IWeightModel<T> = NonEmptyArray<{
weight: number
value: T
}>
function randomByWeightModel<T>(model: IWeightModel<T>): T
function randomByWeightModel<T>(generator: IRandomNumberGenerator, model: IWeightModel<T>): T
randomByModel
enum Type {
Float
, Integer
, IntegerInclusive
}
type IRandomModel =
| number
| Getter<number>
| {
type: Type
min: number
max: number
}
| NonEmptyArray<{
weight: number
value: IRandomModel
}>
function randomByModel(model: IRandomModel): number
function randomByModel(generator: IRandomNumberGenerator, model: IRandomModel): number
mapToRange
function mapToRange(
value: number
, oldMin: number, oldMax: number
, newMin: number, newMax: number
): number
A low-level function helps you to use random number generators other than Math.random()
.
mapToIndexByWeight
function mapToIndexByWeight(
value: number
, oldMin: number, oldMax: number
, weights: NonEmptyArray<number>
): number
A low-level function helps you to use random number generators other than Math.random()
.