0.4.1 • Published 9 months ago

extra-rand v0.4.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

extra-rand

Yet another random library.

Install

npm install --save extra-rand
# or
yarn add extra-rand

API

interface IRandomNumberGenerator {
  next(): number // [0, 1)
}

randomFloat

function randomFloat(min: number, max: number): number
function randomFloat(generator: IRandomNumberGenerator, min: number, max: number): number

The 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): 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)].

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): number

randomBool

function randomBool(probabilityOfTrue: number): boolean
function randomBool(generator: IRandomNumberGenerator, probabilityOfTrue: number): boolean

randomPickItem

function randomPickItem<T>(items: NonEmptyArray<T>): T
function randomPickItem<T>(
  generator: IRandomNumberGenerator
, items: NonEmptyArray<T>
): T

randomPickWeightedItem

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>
): T

randomPickIndex

function randomPickIndex(items: NonEmptyArray<unknown>): number
function randomPickIndex(
  generator: IRandomNumberGenerator
, items: NonEmptyArray<unknown>
): number

The function returns an integer in the range [0, items.length].

randomPickWeightedIndex

function randomPickWeightedIndex(weights: NonEmptyArray<number>): number
function randomPickWeightedIndex(
  generator: IRandomNumberGenerator
, weights: NonEmptyArray<number>
): number

The function returns an integer in the range [0, weights.length].

shuffle

function shuffle(arr: unknown[]): void
function shuffle(generator: IRandomNumberGenerator, arr: unknown[]): void
0.4.1

9 months ago

0.4.0

9 months ago

0.3.3

11 months ago

0.3.2

1 year ago

0.3.1

1 year ago

0.3.0

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.5

2 years ago

0.1.2

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.1

3 years ago

0.1.0

4 years ago