在Golang中随机生成矩阵

ben*_*ano 1 random matrix go

我目前正在编写程序,并且想随机生成一个矩阵。

目前,我正在按以下方式预先设置值:

    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)