0.4.1 • Published 1 year ago
extra-rand v0.4.1
extra-rand
Yet another random library.
Install
npm install --save extra-rand
# or
yarn add extra-randAPI
interface IRandomNumberGenerator {
next(): number // [0, 1)
}randomFloat
function randomFloat(min: number, max: number): number
function randomFloat(generator: IRandomNumberGenerator, min: number, max: number): numberThe function returns a float in the range [min, max).
randomInt
function randomInt(min: number, max: number): number
function randomInt(generator: IRandomNumberGenerator, min: number, max: number): numberThe 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
): numberThe function returns an integer in the range [Math.ceil(min), Math.floor(max)].
randomNumber
enum NumberType {
Float
, Integer
, IntegerInclusive
}
type INumberModel =
| number
| Getter<number>
| {
type: NumberType
min: number
max: number
}
| NonEmptyArray<{
weight: number
model: INumberModel
}>
function randomNumber(model: INumberModel): number
function randomNumber(generator: IRandomNumberGenerator, model: INumberModel): numberrandomBool
function randomBool(probabilityOfTrue: number): boolean
function randomBool(generator: IRandomNumberGenerator, probabilityOfTrue: number): booleanrandomPickItem
function randomPickItem<T>(items: NonEmptyArray<T>): T
function randomPickItem<T>(
generator: IRandomNumberGenerator
, items: NonEmptyArray<T>
): TrandomPickWeightedItem
interface IWeightedItem {
weight: number
}
function randomPickWeightedItem<T>(items: NonEmptyArray<T>, weights: NonEmptyArray<number>): T
function randomPickWeightedItem<T extends IWeightedItem>(items: NonEmptyArray<T>): T
function randomPickWeightedItem<T>(
generator: IRandomNumberGenerator
, items: NonEmptyArray<T>
, weights: NonEmptyArray<number>
): T
function randomPickWeightedItem<T extends IWeightedItem>(
generator: IRandomNumberGenerator
, items: NonEmptyArray<T>
): TrandomPickIndex
function randomPickIndex(items: NonEmptyArray<unknown>): number
function randomPickIndex(
generator: IRandomNumberGenerator
, items: NonEmptyArray<unknown>
): numberThe function returns an integer in the range [0, items.length].
randomPickWeightedIndex
function randomPickWeightedIndex(weights: NonEmptyArray<number>): number
function randomPickWeightedIndex(
generator: IRandomNumberGenerator
, weights: NonEmptyArray<number>
): numberThe function returns an integer in the range [0, weights.length].
shuffle
function shuffle(arr: unknown[]): void
function shuffle(generator: IRandomNumberGenerator, arr: unknown[]): void