我想尝试在 PHP 中创建一个魔方(即所有加起来相同值的数字网格),但我真的不知道从哪里开始。我知道许多创建幻方的方法,例如在固定位置开始“1”,然后在每次迭代中向特定方向移动。但这并不能创建一个真正随机的魔方,这正是我的目标。
我希望能够生成一个由 N² 数字组成的 N×N 魔方,其中每行和每列的总和为 N(N²+1)/2(例如,一个 5x5 的正方形,其中所有行/列的总和为 65 -对角线无关紧要)。
任何人都可以提供一个起点吗?我不想让任何人为我做这项工作,我只需要知道如何开始这样的项目?
我知道一个用 Java 编写的生成器(http://www.dr-mikes-math-games-for-kids.com/how-to-make-a-magic-square.html),但我最后一次体验 Java在我迅速放弃之前已经是 10 多年前了。因此,我真的不明白代码实际上在做什么。但是,我确实注意到,当您生成一个新正方形时,它会按顺序显示数字 1-25(对于 5x5 正方形),然后快速生成一个新的随机正方形。