问题标签 [magic-square]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
739 浏览

memory - 在erlang中生成幻方时内存消耗过多 - 需要优化帮助

对于大学,我必须实现一种算法,为给定的边长和特定的总和创建所有可能的幻方。对于 n=3,算法按预期工作。但是当一段时间后为 n=4 生成所有幻方时,我的内存不足。任务描述中已经提到了这个问题。我已经尝试优化 a 代码,但它仍然无法正常工作。所以我希望有人能给我一些建议。

我的基本想法是:首先我生成所有可能的行,我可以使用给定的数字,然后我试图以一种完全满足幻方限制的方式组合这些行。这是通过回溯发生的。我认为问题是在makeRows存储所有行之后消耗太多内存的函数。

如果您需要我可以提供的代码的更多解释!

好的,我尝试在计算过程的早期添加对行和正方形的检查。以下是修改后的功能。

0 投票
2 回答
1805 浏览

algorithm - 如何创建一个已经填充了一些数字的幻方?

我想这样做:我有一个矩阵 N x N。它可以包含从 1 到 n^2 的数字。这个矩阵有几个用正数填充的单元格。我必须决定,这个已经填充的矩阵可以是一个魔法矩阵(魔方)。例如:

我们可以从这个矩阵创建一个幻方。有什么算法可以决定这个吗?你能给我推荐点什么吗?谢谢你!

0 投票
2 回答
25689 浏览

java - Magic Square 程序帮助 (Java)

这是我处理 2D 数组的 AP 计算机科学课的作业。基本上,程序所做的是将值输入到魔方(所有行、列和对角线加起来是相同的数字)并确定它是否是魔方。我的算法在检查它是否为 Magic 时会不断输出错误(根据 isMagic() 方法)。我相信我的 row() 和 column() 方法有问题,如果有人可以为我提供一个很棒的解决方案。

0 投票
1 回答
404 浏览

math - 方案中的魔方

我仍然是 Scheme 的新手,并试图通过 call/cc 和 amb 运算符来解决魔方。目前,它正在打印:

我不明白为什么它只使用这些数字。是我的与众不同吗?程序?这是我的代码:

0 投票
1 回答
942 浏览

java - 需要优化帮助——在java中生成魔方

我必须实现一种算法,为给定的边长(n=3,4)创建所有可能的幻方。对于 n=3,算法运行良好。但是对于 n=4,算法没有得到任何结果,因为它不是最优的(太慢了)。我试图优化算法,但它仍然无法正常工作。任何帮助是极大的赞赏。

}

0 投票
2 回答
423 浏览

c++ - 在 C++ 中随机播放一个 3d 数组

我有这段代码创建一个 3d 数组并将 1-9 放在一个 3x3x3 框中。我需要找到一种方法来打乱这个数组的元素,以比较新打乱的数组与幻方的接近程度。任何想法表示赞赏!谢谢!

0 投票
1 回答
1442 浏览

pascal - 魔方 FreePascal

程序必须输出正方形是否是幻方。

我必须从文件中读取正方形。

魔方 - 所有行、所有列和两条对角线之和必须相等。

程序显示正确答案,但这 16 个数字必须从文本文件中读取。

文本文件看起来像:

程序本身:

0 投票
3 回答
4330 浏览

c++ - 检查幻方

我有一个程序,它接收一组 16 个数字并将它们打印在 4x4 的网格中。然后我必须检查每一行、每一列和对角线加起来的数字是否相同,但是我不能做这部分,因为我不知道它是如何工作的。任何人都可以帮忙吗?

当前代码:

0 投票
1 回答
423 浏览

c - 堆栈溢出错误暴力破解魔方。任何可能的解决方案?

这是我的问题,对于一个练习,我需要通过在回溯中对其进行暴力破解来生成一个魔方。

我认为将矩阵分配为向量和更改坐标的函数可能很有用。正如您可以想象的那样,即使使用 3x3 幻方,它也给了我一个堆栈溢出问题。

调试它我发现它或多或少发生在生成的一半,更准确地说是函数chk_magic(int *m, int n)调用的位置change_coord(i, j, m, n);

这是整个代码,我在其中签署了中断程序的行。

谷歌搜索我发现对于奇数有一种算法可以很容易地生成它,但是对于偶数问题仍然存在(此外,我的教授希望它具有暴力递归)。

任何可能的解决方案?

0 投票
1 回答
682 浏览

java - 这是 Magic Square Java 程序代码的逻辑错误吗?

我编写了一个创建 nxn 矩阵的程序,然后检查矩阵是否是幻方。在我的方法magicCheck 中,所有元素相加(总和),然后除以n(行数或列数)以生成magicNumber。这个 magicNumber 用于分别比较每行、列和对角线的总和,以查看它们是否匹配。该程序运行良好,但是当我输入应该是幻方的数字时,程序说不是。我的代码顺序是否有错误,或者我错过了数学中的某些内容?