Criar uma função chamada “int numeroProximo(int n, int variacao)” que gera um número aleatório
“próximo” de “n”, podendo ser maior ou menor, porém a diferença entre o novo número e “n” não
pode exceder o valor de “variação”.
Respostas
respondido por:
0
Os números são inteiros,
O próprio número e a variação. A diferença entre o número e o aleatório deve ser menor que variação, para mais ou para menos.
Temos duas formas de fazer esse programa.
A forma mais ineficiente gerar um número aleatório qualquer e testar se ele está nesse intervalo, ou seja,
gerado <= numero + variacao && gerado >= numero - variacao
Isso ficaria num loop até que a condição seja atendida.
Dependendo do tamanho de variaçao e da forma como números aleatórios são gerados isso pode precisar de várias tentativas até achar um aleatório que satisfaça a condição.
Outra forma mais direta é depreender que o aleatório pode ser gerado entre o valor da variação ao dobro e somado ao valor do número - variação.
Por exemplo
suponha que o número seja 3 e a variação seja 7
Isso significa que o aleatório próximo fica entre 3 - 7 = -4 e 3 + 7 = 10
De -4 até 10 temos (10-(-4)+1) = 15 = 7 * 2 + 1
Suponha que o número seja 32 e a variação seja 12
Então o intevalo válido vai de 32-12 = 20 até 32+12 = 44
(44-20+1) = 25 = 12 * 2 +1
Eis o programa escrito em C
https://repl.it/@bokomoko/aleatorio-proximo
O próprio número e a variação. A diferença entre o número e o aleatório deve ser menor que variação, para mais ou para menos.
Temos duas formas de fazer esse programa.
A forma mais ineficiente gerar um número aleatório qualquer e testar se ele está nesse intervalo, ou seja,
gerado <= numero + variacao && gerado >= numero - variacao
Isso ficaria num loop até que a condição seja atendida.
Dependendo do tamanho de variaçao e da forma como números aleatórios são gerados isso pode precisar de várias tentativas até achar um aleatório que satisfaça a condição.
Outra forma mais direta é depreender que o aleatório pode ser gerado entre o valor da variação ao dobro e somado ao valor do número - variação.
Por exemplo
suponha que o número seja 3 e a variação seja 7
Isso significa que o aleatório próximo fica entre 3 - 7 = -4 e 3 + 7 = 10
De -4 até 10 temos (10-(-4)+1) = 15 = 7 * 2 + 1
Suponha que o número seja 32 e a variação seja 12
Então o intevalo válido vai de 32-12 = 20 até 32+12 = 44
(44-20+1) = 25 = 12 * 2 +1
Eis o programa escrito em C
https://repl.it/@bokomoko/aleatorio-proximo
Perguntas similares
6 anos atrás
6 anos atrás
6 anos atrás
8 anos atrás
8 anos atrás
8 anos atrás
9 anos atrás
9 anos atrás