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: 1297 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()) 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()) 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()) 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 |