Last active
September 28, 2022 04:24
-
-
Save LuanComputacao/2d89c903deca2b21ee696d9623c29512 to your computer and use it in GitHub Desktop.
Generate a random number between 1 and 60 without repetition
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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