随机魔法矩阵给出意想不到的结果
Random magic matrix giving unexpected results
我试图在 Octave 中创建随机幻方 并尝试了类似 rand(magic(3))
的东西,它给出了意想不到的无尽结果,如下所示:
ans(:,:,1,1,2,1,1,1,1) =
0.894903 0.296415 0.143990
0.186976 0.305691 0.505485
0.224823 0.834031 0.285508
0.336706 0.318158 0.076293
在尝试 rand(magic(4))
和 5、6、7 时...它给出了类似这样的消息
error: out of memory or dimension too large for Octave's index type
造成这种模糊结果的可能原因是什么?
你想做什么? magic(3)
创建一个 3-by-3 矩阵,其中所有行和列加起来都相同。 rand(x)
创建一个 n 维均匀分布随机数矩阵。例如,如果您调用 y = rand([1,2,3])
,您将得到一个 3 维均匀分布数字矩阵。 y
的维度将匹配您的输入,即 size(y)
应该 return [1,2,3]
并且元素数量将是 prod(y)
。因此 rand(magic(3))
的元素数应该等于 prod(prod(magic(3)))
即 362880
。如果你为 rand(magic(4))
执行此操作,那么元素的数量将超过 20 万亿,这就是你 运行 内存不足的原因。
我试图在 Octave 中创建随机幻方 并尝试了类似 rand(magic(3))
的东西,它给出了意想不到的无尽结果,如下所示:
ans(:,:,1,1,2,1,1,1,1) =
0.894903 0.296415 0.143990
0.186976 0.305691 0.505485
0.224823 0.834031 0.285508
0.336706 0.318158 0.076293
在尝试 rand(magic(4))
和 5、6、7 时...它给出了类似这样的消息
error: out of memory or dimension too large for Octave's index type
造成这种模糊结果的可能原因是什么?
你想做什么? magic(3)
创建一个 3-by-3 矩阵,其中所有行和列加起来都相同。 rand(x)
创建一个 n 维均匀分布随机数矩阵。例如,如果您调用 y = rand([1,2,3])
,您将得到一个 3 维均匀分布数字矩阵。 y
的维度将匹配您的输入,即 size(y)
应该 return [1,2,3]
并且元素数量将是 prod(y)
。因此 rand(magic(3))
的元素数应该等于 prod(prod(magic(3)))
即 362880
。如果你为 rand(magic(4))
执行此操作,那么元素的数量将超过 20 万亿,这就是你 运行 内存不足的原因。