extra-rand 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -111,7 +111,7 @@ function randomPickIndex(
111
111
  ): number
112
112
  ```
113
113
 
114
- The function returns an integer in the range `[0, items.length]`.
114
+ The function returns an integer in the range `[0, items.length - 1]`.
115
115
 
116
116
  ### randomPickWeightedIndex
117
117
  ```ts
@@ -122,7 +122,7 @@ function randomPickWeightedIndex(
122
122
  ): number
123
123
  ```
124
124
 
125
- The function returns an integer in the range `[0, weights.length]`.
125
+ The function returns an integer in the range `[0, weights.length - 1]`.
126
126
 
127
127
  ### shuffle
128
128
  ```ts
package/lib/shuffle.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { nativeRandomNumberGenerator } from './native-random-number-generator.js';
2
- import { randomInt } from './random-int.js';
2
+ import { randomIntInclusive } from './random-int-inclusive.js';
3
3
  export function shuffle(...args) {
4
4
  let generator;
5
5
  let arr;
@@ -11,7 +11,7 @@ export function shuffle(...args) {
11
11
  [generator, arr] = args;
12
12
  }
13
13
  for (let targetIndex = arr.length - 1; targetIndex >= 1; targetIndex--) {
14
- const index = randomInt(generator, 0, targetIndex);
14
+ const index = randomIntInclusive(generator, 0, targetIndex);
15
15
  const temp = arr[targetIndex];
16
16
  arr[targetIndex] = arr[index];
17
17
  arr[index] = temp;
@@ -1 +1 @@
1
- {"version":3,"file":"shuffle.js","sourceRoot":"","sources":["../src/shuffle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,MAAM,UAAU,OAAO,CAAC,GAAG,IAE0B;IAEnD,IAAI,SAAiC,CAAA;IACrC,IAAI,GAAc,CAAA;IAElB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,SAAS,GAAG,2BAA2B,CACtC;QAAA,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACf,CAAC;SAAM,CAAC;QACN,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,KAAK,IAAI,WAAW,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA;QAC7B,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"shuffle.js","sourceRoot":"","sources":["../src/shuffle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAI9D,MAAM,UAAU,OAAO,CAAC,GAAG,IAE0B;IAEnD,IAAI,SAAiC,CAAA;IACrC,IAAI,GAAc,CAAA;IAElB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,SAAS,GAAG,2BAA2B,CACtC;QAAA,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACf,CAAC;SAAM,CAAC;QACN,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IACzB,CAAC;IAGD,KAAK,IAAI,WAAW,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;QAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA;QAC7B,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IACnB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extra-rand",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Yet another random library",
5
5
  "keywords": [
6
6
  "random"
package/src/shuffle.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { IRandomNumberGenerator } from './types.js'
2
2
  import { nativeRandomNumberGenerator } from './native-random-number-generator.js'
3
- import { randomInt } from './random-int.js'
3
+ import { randomIntInclusive } from './random-int-inclusive.js'
4
4
 
5
5
  export function shuffle(arr: unknown[]): void
6
6
  export function shuffle(generator: IRandomNumberGenerator, arr: unknown[]): void
@@ -18,8 +18,9 @@ export function shuffle(...args:
18
18
  [generator, arr] = args
19
19
  }
20
20
 
21
+ // https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm
21
22
  for (let targetIndex = arr.length - 1; targetIndex >= 1; targetIndex--) {
22
- const index = randomInt(generator, 0, targetIndex)
23
+ const index = randomIntInclusive(generator, 0, targetIndex)
23
24
  const temp = arr[targetIndex]
24
25
  arr[targetIndex] = arr[index]
25
26
  arr[index] = temp