[CODE lang="javascript" title="// Typescript"]export function randomNoRepeatingSample(sampleSize: number, length: number): number[] {
const arr = [...Array(length)].map((x, i) => i);
shuffleArray(arr, ShuffleDegree.LIGHT);
const selectedRange = Math.randomRange(length - sampleSize);
return arr.slice(selectedRange, sampleSize + selectedRange);
}[/CODE]
[CODE lang="javascript" title="// Typescript"]export enum ShuffleDegree {
SUPER_LIGHT = 0.25,
LIGHT = 0.5,
NORMAL = 1,
HARD = 2,
SUPER_HARD = 4
}[/CODE]
[CODE lang="javascript" title="// Typescript"]export function int(num: number): number {
return ~~num;
}[/CODE]
[CODE lang="javascript" title="// Typescript"]export function shuffleArray<T>(arr: T[], degree: ShuffleDegree = ShuffleDegree.NORMAL): void {
const len = arr.length * degree;
for (let i = 0; i < len; i++) {
const n1 = int(Math.randomRange(len));
const n2 = int(Math.randomRange(len));
arr.swap(n1, n2);
}
}[/CODE]
[CODE lang="javascript" title="// Typescript"]extendArrayPrototype('swap', function (this: number[], n1: number, n2: number): void {
const temp = this[n1];
this[n1] = this[n2];
this[n2] = temp;
});[/CODE]
Type'ları kaldırırsanız Javascript. Enum yerine Object kullanılabilir.