问题标签 [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 投票
1 回答
170 浏览

java - 格式化这个神奇的正方形

我正在寻找格式化此代码的输出,以便行和列的总数显示在所述行/列的旁边/下方。我得到的数字是正确的,但空格和字符数似乎太不可预测,无法正确格式化任何大小的正方形。这是我目前拥有的代码。

这个输出是..

是否有任何策略可以更可靠地格式化这样的内容?

0 投票
1 回答
1118 浏览

python - 如果矩阵在不导入 numpy 的情况下形成幻方,则编写一个返回布尔值 true 的函数

我已经编写了程序的一部分,如下所示:

如果矩阵是方阵,此函数返回 True,否则返回 False。

然而,问题就从这里开始了。

我必须编写第二个函数来确定该函数是否是魔方。

如果满足以下条件,方阵形成幻方:

  1. 矩阵的元素是数字 1,2,3,...,n 2
  2. 每行、每列和两条对角线中的元素之和是相同的值

代码首先以:

这是我尝试的。

我的代码中似乎有几个错误。一个重要的问题是我正在测试数字的精确相等性,这是错误的,因为数字不能完全表示为浮点数,但我找不到另一种方法来做到这一点。任何提示将不胜感激。

这是此功能的预期结果,只是在同一页面上。

真的

  • [[2,7, 6],[9,5,1],[4,3,8]]
  • [[16,3,2,13], [5,10,11,8],[9,6,7,12], [4,15,14,1]]

错误的

  • [[1,2,3,4], [5,6,7,8],[9,10,11,12], [13,14,15,16]]
  • [[1,1],[1,1]]
  • [[1,1],[1,1],[1,2]]

没有导入 numpy。

0 投票
2 回答
112 浏览

java - 是否可以将我的代码压缩成少于 3 行?

输出如下所示:

2, 4, 9,
6, 8, 1,
7, 3, 5,

你好,我写了一个黑魔法代码,它能够填充正方形的网格,但如果它填充了一个数字,那么下一个数字将被放在它当前位置下方的正方形中.

然后,向上和向右移动一个正方形并将下一个整数放在那里,如果我也离开网格,那么下一个数字将环绕到底部和/或左侧。该程序运行直到所有的方块都被填满。

我想知道是否可以将我的代码从我的 while 循环开始到我的 for 循环结束压缩成更短的代码?

有人说我只用 2 行就可以编写代码,我认为这很奇怪……但他们说这是可行的!

任何提示、帮助或指针将不胜感激!

太感谢了!

0 投票
1 回答
1402 浏览

prolog - 魔方 NxN

我是 Prolog 的新手,我正在尝试编写完全工作的幻方程序,但说实话我真的不知道该怎么做,我已经开始了,但我觉得我做错了。我正在分享我的代码,我希望有人能帮助我,现在当数字很好时,我得到了正确的结果,但是当它们不是时,我会像堆栈错误一样......(这里只是检查我所知道的行和列倾斜检查)感谢您的关注!

0 投票
3 回答
1831 浏览

python - 带有python的Magic Square,使用itertools

我有一些代码可以确定 N*N 整数列表是否形成魔方:

我的问题是最后一部分:我想生成整数 1 到 N^2 的所有排列,将每个排列分成一个正方形——N 行和 N 列的二维列表——并使用我的函数找到所有魔法正方形。我编写的itertools代码找到了可以完成这项工作的 3 个数字的组合,但我无法找出组合数来形成正方形。

感谢@Prune 的帮助。

如果我有:
[1 5 9]
[1 6 8]
[2 4 9]
[2 5 8]
[2 6 7]
[3 4 8]
[3 5 7]
[4 5 6]
我如何生成一个正方形魔术,知道它是真还是假,一次使用三个矩阵的元素?
示例:
[[1 5 9]、[1 6 8]、[2 4 9]]

[[1 5 9]、[1 6 8]、[2 5 8]]

[[1 5 9]、[ 1 6 8]、[2 6 9]] 等等等等。

0 投票
1 回答
127 浏览

python - 如何将文件中的一行转换为二维数组

我对python相当陌生,我一直在努力编写一个程序,该程序将文件中的一行作为输入来验证Lo Shu Magic Square。我需要做的是一次读取文件中的一行,例如每行 1 2 3 4 5 6 7 8 9 ,并将其转换为二维数组,如 [[1,2,3],[4 ,5,6],[7,8,9]] 前三个数字对应魔方第一行的值,后三个值对应第二行,后三个值对应最后一个排。

到目前为止我已经尝试过

但这只会给我

文本文件的内容是

所以我觉得我在正确的轨道上,但它只将每行的前三项附加到数据中,我不知道为什么

0 投票
6 回答
20450 浏览

python - 魔方蟒

我正在编写一个程序,该程序读取文件中的一行并确定该行是否构成 Lo Shu 魔方。在这个幻方中,行之和、列之和、对角线之和必须等于 15,并且每个数字 1-9 在方格中只能出现一次。这是我到目前为止所拥有的:

我的文本文件的内容如下:

每行的前三个数字代表正方形的顶行,接下来的三个是中间行,最后三个是底行。我遇到的问题是前三个方块是有效的,而后四个应该是无效的。但是我的代码不断为我打印出来的是

有人能告诉我我在哪里搞砸了吗?我对 python 还很陌生,我一直盯着这个几个小时试图理解它。

0 投票
0 回答
95 浏览

python - 制作正方形时列出索引超出范围错误

所以我正在尝试制作一个函数,它接受一个整数'n'并返回一个列表列表,这完全是为了制作一个“魔方”(从顶部中心的 1 开始,然后向右走,然后直到下一个,都带有“环绕”效果)。无论如何,我觉得我的代码非常笨重,但我也无法测试它是否有效,因为它没有......我收到一条list index out of range消息msq[row][col] = v。这是代码:

哦,我要通过的测试是magicsquare(3) == magicsquare([[4, 3, 8], [9, 5, 1], [2, 7, 6]])。任何帮助表示赞赏,谢谢!!!!!!!

0 投票
4 回答
657 浏览

ruby - 如果没有给出值,则用 nil 值填充 Hash

我有这些数组:

我需要创建一个散列,其键来自keys,值来自values。值必须位于positions. If no index is defined,nil 中定义的索引处,应添加到该索引中。

三个数组包含相同数量的元素;keys有两个元素,values二和positions二。所以没关系。

预期输出:

0 投票
1 回答
530 浏览

c - 生成魔方

这是一个幻方问题,幻方 n 的大小应作为命令行参数输入。n 必须是奇数。 预期的输出应该是这样的。我的问题是,当我尝试执行代码时, 它会生成一堆 0。

我是 C 初学者,我希望有人可以帮助我解决我的问题。非常感谢!我感谢您的帮助!