对于大学,我必须实现一种算法,为给定的边长和特定的总和创建所有可能的幻方。对于n=3,算法按预期工作。但是当一段时间后为n=4生成所有幻方时,我的内存不足。任务描述中已经提到了这个问题。我已经尝试优化a代码,但它仍然无法正常工作。所以我希望有人能给我一些建议。我的基本想法是:首先我生成所有可能的行,我可以使用给定的数字,然后我尝试将它们组合在一起,以实现幻方的限制。这是通过回溯发生的。我认为问题在于函数makeRows在存储所有行之后消耗了太多内存。如果您需要对代码的更多解释,我可以提供!magicSquare(N,Value)->Squares=buildSquare(N,makeR