这是我正在使用的代码:
package main
import "fmt"
import "math/rand"
func main() {
code := rand.Intn(900000)
fmt.Println(code)
}
它始终返回698081
。我不明白,这是什么问题?
修改:
我尝试了rand.Seed
package main
import "fmt"
import "time"
import "math/rand"
func main() {
rand.Seed(time.Now().UnixNano())
code := rand.Intn(900000)
fmt.Println(code)
}
没有变化。现在它总是返回452000
答案 0 :(得分:13)
您在操场上看到相同结果的几个原因
最后但并非最不重要的是,rand
软件包默认种子为1
,这将使结果具有确定性。如果您放置rand.Seed(time.Now().UnixNano())
,则每次执行时都会收到不同的结果。请注意,由于上述第二个原因,这不会在操场上工作。