Você está aqui: GoLang ::: Dicas & Truques ::: Matemática e Estatística |
Como gerar um número aleatório em Go usando as funções rand.Int(), rand.Intn(n) e rand.Float64()Quantidade de visualizações: 1546 vezes |
|
Os números aleatórios, ou números randômicos, estão presentes em boa parte dos nossos algorítmos, principalmente programas de simulações e jogos. Na linguagem Golang, números aleatórios podem ser gerados usando-se as funções rand.Int(), rand.Intn(n) e rand.Float64() do pacote "math/rand". Veja um exemplo de código Go no qual usamos a função rand.Int() para gerar um número inteiro aleatório sem especificarmos a faixa inicial e final. Note o uso da função rand.Seed() para alimentar o gerador de números randômicos:
// pacote principal
package main
// vamos importar os módulos necessários
import (
"fmt"
"math/rand"
"time"
)
// esta é a função principal do programa
func main() {
// fazemos o seed do gerador de números
// aletórios
rand.Seed(time.Now().UnixNano())
// vamos gerar um número inteiro aleatório
var numero = rand.Int()
// vamos mostrar o número gerado
fmt.Printf("O número gerado foi: %d", numero)
}
Ao executar este código Golang nós teremos o seguinte resultado: O número gerado foi: 5202443329113796449 Em todos os meus testes o número gerado foi assim mesmo, gigante. No entanto, haverá situações nas quais gostaríamos de fornecer a faixa dos números aleatórios a serem gerados. Para isso nós podemos usar a função rand.Intn(n), que aceita um número inteiro e gera um número randômico na faixa que vai de 0 até o parâmetro informado (sem incluí-lo). Assim, veja um exemplo no qual geramos um número aleatório de 1 até 10:
// pacote principal
package main
// vamos importar os módulos necessários
import (
"fmt"
"math/rand"
"time"
)
// esta é a função principal do programa
func main() {
// fazemos o seed do gerador de números
// aletórios
rand.Seed(time.Now().UnixNano())
// vamos gerar um número inteiro aleatório
// na faixa de 1 a 10 (incluindo os dois números)
var numero = rand.Intn(10) + 1
// vamos mostrar o número gerado
fmt.Printf("O número gerado foi: %d", numero)
}
Ao executarmos este código Golang nós teremos o seguinte resultado: O número gerado foi: 8 Finalmente, podemos usar a função rand.Float64() para gerar números randômicos na faixa que vai de 0.0 até 1.0 (sem incluir a faixa mais alta, ou seja, o valor 1.0). Veja:
// pacote principal
package main
// vamos importar os módulos necessários
import (
"fmt"
"math/rand"
"time"
)
// esta é a função principal do programa
func main() {
// fazemos o seed do gerador de números
// aletórios
rand.Seed(time.Now().UnixNano())
// vamos gerar um número real aleatório
// na faixa de 0.0 a 1.0 (sem incluir o 1.0)
var numero = rand.Float64()
// vamos mostrar o número gerado
fmt.Printf("O número gerado foi: %f", numero)
}
Ao executar este código Go nós teremos o seguinte resultado: O número gerado foi: 0.883416 |
|
|
Veja mais Dicas e truques de GoLang |
Dicas e truques de outras linguagens |
|
Python - Como converter Centímetros Cúbicos em Metros Cúbicos em Python - Python para Física e Engenharia |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





