Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save LuanComputacao/2d89c903deca2b21ee696d9623c29512 to your computer and use it in GitHub Desktop.
Save LuanComputacao/2d89c903deca2b21ee696d9623c29512 to your computer and use it in GitHub Desktop.
Generate a random number between 1 and 60 without repetition
console.log('Gerar Números Aleatórios', generateRandomNumbers(6));
/**
* Generate a random number between 1 and 60 without repetition
* @param {number} amount - Amount of numbers to be generated
* @returns {number[]} - Array of numbers
*/
function generateRandomNumbers(amount) {
const numberBetween1And60 = () => Math.floor(Math.random() * 60) + 1;
const numbers = [];
for (let i = 0; i < amount; i++) {
let number = numberBetween1And60();
while (numbers.includes(number)) {
number = numberBetween1And60();
}
numbers.push(number);
}
return numbers;
}
function numbersDraw() {
const randomNumber = () => Math.floor(Math.random() * (max - min + 1)) + min;
const sortedNumbers = (numbers) => numbers.sort((a, b) => a - b);
let assortedNumbers = [];
const min = 1;
const max = 60;
const howManyNumbers = 6;
for (let i = 0; i < howManyNumbers; i++) {
let number = randomNumber();
while (assortedNumbers.includes(number)) {
number = randomNumber();
}
assortedNumbers.push(number);
}
return sortedNumbers(assortedNumbers)
}
console.log(numbersDraw());
/**
* Generates a number between 1 and 60
* @returns integer: number between 1 and 60
*/
function numberBetween1And60() {
return Math.floor(Math.random() * 60) + 1;
}
/**
* Generates a list of numbers between 1 and 60 without repetition recursively
* @param {number} amount - Amount of numbers to be generated
* @param {number[]} numbers - Array of numbers
* @returns {number[]} - Array of numbers
*/
function generateRandomNumbers(amount, numbers = []) {
const number = numberBetween1And60();
if (numbers.includes(number)) {
return generateRandomNumbers(amount, numbers);
}
numbers.push(number);
if (numbers.length === amount) {
return numbers;
}
return generateRandomNumbers(amount, numbers);
}
console.log('Gerar Números Aleatórios Recursivamente', generateRandomNumbers(6));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment