PHP で魔方陣 (つまり、合計すると同じ値になる数字のグリッド) を作成してみたいのですが、どこから始めればよいかわかりません。固定位置で「1」を開始し、反復ごとに特定の方向に移動するなど、魔方陣を作成する多くの方法を知っています。しかし、それは私が目指している真にランダム化された魔方陣を作成しません.
各行と列の合計が N(N²+1)/2 になる N² 数の N 行 N 列の魔方陣 (たとえば、すべての行/列の合計が 65 になる 5x5 の正方形) を生成できるようにしたいと考えています。対角線は関係ありません)。
誰でも出発点を提供できますか? 誰にも仕事を任せたくないのですが、そのようなプロジェクトを開始する方法を知りたいだけですか?
私は Java で書かれた 1 つのジェネレーター ( http://www.dr-mikes-math-games-for-kids.com/how-to-make-a-magic-square.html ) を知っていますが、私が最後に経験した Java は私がすぐにそれを放棄する前に、それは10年以上前でした。したがって、コードが実際に何をしているのかよくわかりません。ただし、新しい正方形を生成すると、新しいランダム化された正方形をすばやく生成する前に、1 ~ 25 (5x5 の正方形の場合) の数字が順番に表示されることに気付きました。