我目前正在编写程序,并且想随机生成一个矩阵。
目前,我正在按以下方式预先设置值:
m1 := [3][3]int{
[3]int{1, 1, 1},
[3]int{4, 1, 7},
[3]int{1, 65, 1},
}
Run Code Online (Sandbox Code Playgroud)
但是我希望输入的值在1到100的范围内随机生成。
import "math/rand"
Run Code Online (Sandbox Code Playgroud)
我正在导入上述库并尝试利用它。
我试图使此工作正常,但是似乎没有任何进展。
m1 := [3][3]int{
[3]int{rand.Intn, 1, 1},
[3]int{4, 1, 7},
[3]int{1, 65, 1},
}
Run Code Online (Sandbox Code Playgroud)
我试图用上述解决方案完成它,以使第一个数字随机,但是出现以下错误。
cannot use rand.Intn (type func(int) int) as type int in array or slice literal
Run Code Online (Sandbox Code Playgroud)
任何帮助,不胜感激。
小智 5
直接的答案是rand.Intn()生成一个介于0和之间的随机整数的事实n,其中n是此方法的参数。您得到的错误是编译器抱怨您试图int使用需要2 int并返回1 的函数初始化值-您试图将函数分配给int。因此正确的呼叫应类似于rand.Intn(100),它将为您提供0-100之间的随机数。
但是,为什么要这样呢?为什么不使用以下随机数动态初始化数组:
m1 := [3][3]int{}
for i:=0; i<3; i++ {
for j:=0; j<3; j++ {
m1[i][j] = rand.Int()
}
}
Run Code Online (Sandbox Code Playgroud)