Example of generating integer random Numbers using Golang

  • 2020-06-03 06:56:56
  • OfStack

php random number

PHP is a simple way to generate a random number for a given range, and you can specify a range from negative to positive integers, such as:


<?php
echo mt_rand(-988, 888);

This generates random Numbers from -988 to 888.

Using Go is a bit of a hassle. The following two functions respectively generate a random integer in the maximum range and a random integer in the range:

Generate 1 random number in the maximum range

1 must be given a timestamp seed, otherwise each generation will have one value. Here is the random number that generates [0,100].


func GenerateRandnum() int {
 rand.Seed(time.Now().Unix())
 randNum := rand.Intn(100)
 return randNum
}

Generate 1 random number for a given range

This is really just like generating a random number 1 within a given maximum, but with a maximum and minimum range of processing.


func GenerateRangeNum(min, max int) int {
 rand.Seed(time.Now().Unix())
 randNum := rand.Intn(max - min) + min
 return randNum
}

The complete example is as follows:


func main() {
 GenerateRandnum()
 GenerateRangeNum(888, 900)
}

package main
 
import (
 "fmt"
 "math/rand"
 "time"
)
 
// GenerateRandnum  Generate random Numbers in the maximum range 
func GenerateRandnum() int {
 rand.Seed(time.Now().Unix())
 randNum := rand.Intn(100)
 
 fmt.Printf("rand is %v\n", randNum)
 
 return randNum
}
 
// GenerateRangeNum  generate 1 A random number within an interval 
func GenerateRangeNum(min, max int) int {
  rand.Seed(time.Now().Unix())
 randNum := rand.Intn(max - min)
 randNum = randNum + min
 fmt.Printf("rand is %v\n", randNum)
 return randNum
}
 
func main() {
 GenerateRandnum()
 GenerateRangeNum(888, 900)
}

Operation results:

➜ examples git:(master) ✗ go run range.go

rand is 52

rand is 892

➜ examples git:(master) ✗ go run range.go

rand is 53

rand is 889

➜ examples git:(master) ✗ go run range.go

rand is 53

rand is 889

conclusion


Related articles: