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: 1304 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |