Questions tagged «puzzle-solver»

如果您的挑战是编写解决数独难题的程序,例如数独,魔方,填字游戏等,请使用此标记。

30
构造身份矩阵
挑战非常简单。给定整数输入n,输出n x n单位矩阵。单位矩阵是1从左上角到右下角的s 矩阵。您将编写一个程序或函数来返回或输出您构造的身份矩阵。您的输出可能是2D数组,或者是由空格/制表符和换行符分隔的数字。 输入和输出示例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], ...

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N ...
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

3
为我解决这个城堡
最近,我一直在玩一个叫做Alcazar的游戏。这是一款棋盘益智游戏,您的目标是从一扇门进入,穿过所有正方形,然后从另一扇门退出。唯一的规则是: 进入一次,离开一次; 穿过所有正方形; 不要多次穿过广场 下图显示了一个Alcazar板的示例,其右侧显示了已解决的难题(当然这是一个简单的难题): 您可以在http://www.theincrediblecompany.com/try-alcazar上找到更多拼图,并在PlayStore下载该游戏(PS:不是广告)。 我的问题是除了一个关卡之外,我几乎完成了游戏。我根本找不到解决方法。因此,我提出的挑战是:创建一个可以解决任何正常的1可解决的2城堡等级的算法。 当然,我不是要任何人来构建图像解释器来读取图像并解决难题(或者是吗?)。因此,我使用方框图字符重新绘制了上述难题。这个难题及其解决方案将是这样的: ╔═══════╗ ╔═══════╗ ║▒ ▒ ▒ ▒║ ║┌─┐ ┌─┐║ ║ ║ ║ ║│ │ │║│║ ╣▒ ▒ ▒║▒╠ ╣│ └─┘║└╠ ║ ══╦═╩═╣ ║│══╦═╩═╣ ║▒ ▒║▒ ▒║ ║└─┐║┌─┐║ ║ ║ ║ ==> ║ │║│ │║ ╣▒ ▒║▒ ▒║ ╣┐ │║│ │║ ║ ║ ║ ...

5
在编译时解决八皇后问题[关闭]
您可以在编译时解决八个皇后难题吗? 选择任何合适的输出格式。 我对C ++模板元编程解决方案特别感兴趣,但是您可以使用具有类似构造的语言,例如Haskell的类型系统。 理想情况下,您的元程序将输出所有解决方案。没有硬编码。

3
解决魔方
编写最短的程序,以在合理的时间范围内移动并解决Rubik的多维数据集(3 * 3 * 3)(例如,在您的计算机上最多5秒,而最多移动1000秒)。 输入的格式为: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (此特定输入表示已解决的多维数据集)。 前12个2个字符的字符串是UF,UR,... BL位置中的边(U =上,F =前,R =右,B =后,L =左,D =下),然后是下8个3个字符的字符串是UFR,URB,... DBR位置中的角。 输出应以这种格式给出一系列移动: D+ L2 U+ F+ D+ L+ D+ F+ U- F+ 其中D1或D +代表将D(下)面顺时针旋转90度,L2代表将L面旋转180度,U3或U-代表将U面逆时针旋转90度。 字母不区分大小写,空格是可选的。 ...

6
解决色彩难题
在我们Puzzling.SE的朋友那里,发布了以下拼图:这个半彩色拼图是否始终可以解决?由Edgar G.你可以发挥它在这里。 拼图说明 给定一个m x n网格,其中包含三种不同颜色的图块,如果它们的颜色不同,则可以选择任意两个相邻图块。然后将这两个图块转换为第三种颜色,即这两个图块未表示的一种颜色。如果所有图块都具有相同的颜色,则难题就解决了。显然,一个可以证明的是这个难题始终是可解的,如果没有m,也不n是被3整除。 当然,这乞求一种求解算法。您将编写解决此难题的函数或程序。请注意,stdout明确允许具有“副作用”的函数(即,输出处于打开状态,而不是某些尴尬的数据类型返回值)。 输入输出 输入将是一个m x n由整数的矩阵1,2和3(或0,1,2如果方便的话)。您可以以任何理智的格式接受此输入。这两个m和n的>1,而不是被3整除你可以假设这一难题没有解决 然后,您将解决难题。这将涉及重复选择两个要“转换”的相邻图块(请参见上文)。您将为求解算法采取的每个步骤输出这些图块的两个坐标。这也可以是任何合理的输出格式。您可以自由选择从0索引到1索引之间的索引,还是先索引行还是列。但是,请在您的答案中提及这一点。 您的算法应在合理的时间内在原始8x8情况下运行。暴力破解它完全是明令禁止的,即你的算法应该下运行O(k^[m*(n-1)+(m-1)*n])与k所需的解决方案的步数。但是,该解决方案并不需要是最优的。链接问题中给出的证明可以使您了解如何执行此操作(例如,首先仅使用垂直相邻的图块来创建所有列,然后再执行所有行) 测试用例 在这些测试用例中,坐标是基于1的,并且首先对行进行了索引(如MATLAB / Octave以及可能的许多其他索引)。 Input: [1 2] Output: (result: all 3's) [1 1],[1,2] Input: [ 1 2 3 1 ] Output: (result: all 1's) [1 1],[2 1] (turn left column into 2's) [2 1],[2 2] (turn right ...

7
微小的探索者
您是一位探险家,正在绘制一个未知的世界。你的船在风中航行。哪里知道,谁知道? 每天,在望远镜中,您都会看到北,南,东和西的特征。您始终会看到四个与基本方向相对应的功能。您的望远镜会报告如下ASCII符号: ~~.*,~~~~,~.^^,~#~# 这些符号按顺序排列(北,南,东,西)。 这些符号是:~=海洋,.=海岸,^=山脉,*=树木,#=无效(无观测,只要您看到世界的边缘或地貌被雾遮盖,就会发生这种情况)。您的望远镜在各个方向上只能看到一个单位。 每天晚上,您抬头仰望星星,以了解您旅行了多远。看着星星会报告这样的ascii符号: n,s,e,w 分别对应于北部,南部,东部和西部。每天晚上,您总是只向北,南,东或西移动一个单位。因此,作为浏览器的您将收到无穷无尽的符号流: ~~.*n~~~~s~~.*s~.** 您的任务是输出世界的2D地图(地图的?未知部分在哪里,北朝上,东朝右): ?~~~?????? ?~~~?????? ?~~~.^^.?? ?~~.***.~~ ~~.*^^*.~~ ~~~..~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ 为了简单起见,我们假设您从地图的左下角开始。假设所有地图均为8x8。 这是一个简单的3x3示例。假设地图看起来像这样: ~.~ ~^~ ~.~ 输入以下内容: ~#.#n~~^#s 您将获得以下输出: ~?? ~^? ~.? 更多示例输入和输出: 输入 ~#~#n~~~#n~~~#n~~~#n~~~#n~~.#n~~.#n#~~#e#.~~e#.~~e#.~~e#.~~e#~~~e#~~~e#~#~s~~#~s~~#~s~~#~s~~#.s~~#~s~~#~s~##~w~#~~w.#~~w^#~~w.#~~ 输出 ~~~~~~~~ ~....~~~ ~.????~~ ~~????~~ ~~????.~ ~~????~~ ~~?.^.~~ ~~~~~~~~ 输入: ~#~#e~#~~e~#~~e.#~~e^#~~n.~..n~^~.n~.~~n.~~.n.~~*n~.~.n#.~~w#.~~w#.~~s~*..s..*.s*~.~s.~~~s 输出: ?~~~~~?? ?....~?? ?.**.~?? ?~..~~?? ?~~~~~?? ?~~..~?? ...

17
创建Flood Paint AI
在Flood Paint游戏中,游戏的目标是在尽可能少的回合时间内使整个板成为相同的颜色。 游戏从一个看起来像这样的棋盘开始: 3 3 5 4 1 3 4 1 5 5 1 3 4 1 1 5 2 1 6 5 2 3 4 3 3 4 3 4 4 4 5 5 5 4 1 4 6 2 5 3[3]1 1 6 6 5 5 1 2 ...

8
切割金链
旅行者需要在城外的一家酒店住宿n天。他没有现金了,他的信用卡已过期。但是他有一个带有n个链接的金链。 这家酒店的规定是居民应每天早晨支付租金。旅行者与经理达成协议,每天支付金链的一个链接。但是经理还要求旅行者在每天付款时,对链条的损坏应尽可能少。换句话说,他必须提出一种解决方案,以减少尽可能少的链接。 剪切链接将创建三个子链:一个仅包含剪切链接的子链,而在每一侧各包含一个。例如,剪切长度为8的链的第三个链接将创建长度为[2,1,5]的子链。经理很高兴进行更改,因此旅行者可以在第一天使用长度为1的链条进行支付,然后在第二天使用长度为2的链条进行支付,从而收回第一条链条。 您的代码应输入长度n,并输出链接列表以切出最小长度。 规则: n是大于0的整数。 您可以对链接使用基于0或基于1的索引。 对于某些数字,解决方案不是唯一的。例如,如果n = 15两个[3, 8]和[4, 8]是有效的输出。 您可以返回列表,也可以使用任何合理的分隔符进行打印。 这是code-golf,因此以字节为单位的最短代码获胜。 测试用例: Input Output (1-indexed) 1 [] 3 [1] 7 [3] 15 [3, 8] 149 [6, 17, 38, 79] 详细的例子 对于n = 15,剪切链接3和8会得到length的子链[2, 1, 4, 1, 7]。这是一个有效的解决方案,因为: 1 = 1 2 = 2 3 = 1+2 4 ...

30
聪明人的海市age楼
从前,我在阅读有关Quora的问题/答案 真的有没有计算机科学学位的程序员无法通过FizzBu​​zz测试 此代码是显而易见的答案 for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i 当然,FizzBu​​zz已经被打死了,但这并不是这个问题的实质。您会在评论中看到有人提到该答案很不错,因为很容易添加额外条件,例如将“ Jazz”打印为4的倍数。(我不同意。扩展此方案需要O(2 ** n )代码行。) 您的挑战是编写由同行判断的最漂亮的FizzJazzBuzz版本。 选民需要考虑的一些事项: 干 除法/模运算的效率 ...
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 


2
非图线暴力破解
背景 Nonogram,也称为Picross或Griddlers,是一个难题,其目标是使用每行上连续的彩色单元格的数量来确定2D网格上的每个单元格是彩色还是空白。 以下是带有解决方案的示例非图拼图。 问题是,某些商业Nonogram游戏/移动应用程序具有无法用手解决的难题(例如,具有多种解决方案,或者需要深度回溯)。但是,它们也为玩家提供了一些生命,当您尝试给正确答案为空白的单元格上色时,将会失去生命。因此,现在是时候对那些令人讨厌的“难题”进行暴力破解了! 为了简化任务,想象一下只有一条线索及其线索: 3 7 | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 这些[3,7]是线索,行长为15个单元格。由于它有多种可能的解决方案,因此我们需要冒一些生命危险才能完全解决此问题(即确定所有有色单元格)。 挑战 给定一条具有线索的行(正整数列表)和行长,假设您使用最佳策略对这条行进行暴力破解,找出将要失去的最大生命数。 请注意,您总是会猜到有色单元格。在实际的游戏中,猜测空单元(对还是错)对您的生活没有影响,因此您无法以这种方式“解决”难题。 另外,您可以假设输入始终代表有效的Nonogram行,因此您无需担心诸如的问题[6], 5。 说明 首先让我们看一些简单的例子。 [1,2], 5 此行完全有三种可能性(O一个彩色单元格,.一个空单元格): O . O O . O . . O O . O . O O 如果我们尝试为单元格0(从左开始的基于0的索引)着色,则会发生以下情况之一: ...

9
打印所有3 x 3坚固的正方形
坚固的正方形(类似于魔术正方形)是整数1到N 2在N by N网格上的排列,以使每2 by 2子网格具有相同的总和。 例如,对于N = 3,一个坚固的正方形是 1 5 3 9 8 7 4 2 6 因为四个2 x 2子网格 1 5 9 8 5 3 8 7 9 8 4 2 8 7 2 6 全部加起来等于23, 23 = 1 + 5 + 9 + 8 = 5 + ...
24 code-golf  number  arithmetic  number-theory  grid  code-golf  binary  code-golf  popularity-contest  code-golf  chemistry  code-golf  code-golf  date  code-golf  quine  chess  code-golf  hexadecimal  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  math  date  code-golf  typography  code-golf  string  code-golf  string  code-golf  code-golf  math  arithmetic  array-manipulation  grid  code-golf  puzzle-solver  code-golf  music  audio  code-golf  decision-problem  code-golf  geometry  code-golf  number  bitwise  code-golf  string  metagolf  hexagonal-grid  code-golf  string  code-golf  sorting  popularity-contest  code-golf  game  sequence  base-conversion  binary  code-golf  decision-problem  graph-theory  natural-language  code-golf  math  parsing  optimized-output  code-golf  array-manipulation  code-golf  graphical-output  image-processing  tiling  code-golf  graph-theory  path-finding  chess  code-golf  code-golf  balanced-string  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  statistics  code-golf  chemistry 

15
半回文之谜
回文是一个本身相反的词。 现在有些单词看起来像回文,但看起来却不然。例如,考虑单词 sheesh, sheesh不是回文,因为它的反向是hseehs不同的,但是如果我们认为sh是单个字母,那么它的反向是sheesh。我们将这种词称为半回文。 具体来说,如果我们可以将单词拆分成一定数量的块,则该单词为半回文,这样当块的顺序颠倒时,便形成了原始单词。(因为sheesh这些块是sh e e sh),我们也将不要求任何块包含两个单词的字母(否则每个单词都是半回文)。例如rear,不是半回文,因为它r ea r具有一个块(ea),其中包含来自原始单词两边的字母。我们认为奇数长度的单词的中心字符不在单词的两侧,因此对于奇数长度的单词,中心字符必须始终位于其自己的块中。 您的任务是获取正整数列表,并确定它们是否为半回文。您的代码应输出两个一致的不相等值,如果输入是半回文,则应输出一个,否则将输出另一个。但是,代码的字节序列本身必须是半回文。 答案将以字节计分,而字节数越少越好。 测试用例 [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False 程序生成更多的测试用例。 borrible指出,这些与广义Smarandache回文相似。因此,如果您想做进一步的阅读,那是一个开始的地方。

3
解决15难题(滑动瓷砖的难题)
15拼图是一个著名的拼图,涉及在4x4网格上滑动15个图块。从随机配置开始,目标是按照正确的顺序排列图块。这是一个已解决的15个难题的示例: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 拼图上的每个动作的形式均为上/下/左/右。“向下”移动包括向下滑动空白点上方的图块。“向右”移动包括向右滑动瓷砖到空白处。这是板在上下移动后的外观。 01 02 03 04 05 06 07 08 09 10 11 13 14 15 12 这项挑战的目标是编写一个程序,该程序可以输出解决15难题所需的一系列动作。获胜者是能够以最少的总动作解决五个测试案例(如下)的程序。生成的解决方案并不一定是完美的解决方案,它只必须比竞争对手更好。对于每个单独的测试用例,在合理的机器上,程序的时间不应超过十秒钟。 您的程序必须能够解决所有可解决的难题,我只是将这五个测试用例用作评分。 您的程序将以2D数组的形式接收未解决的15拼图作为输入。可以根据使用的语言来格式化2D数组,如果该语言没有2D数组,则可以对其进行更改。第一个子数组的第一个元素将是左上角的数字,第一个子数组的最后一个元素将是右上角的数字。一种0将是空白区域。 作为输出,程序应按需要执行的顺序打印动作列表。每个步骤都应编号,以增加结果的可用性。 编辑:基于注释,我将允许输出为Down / Up / etc形式或要移动的工件坐标形式。由于这不是代码高尔夫球,所以最重要的部分是解决难题。 其他一些通用规则不涉及使用外部资源等。 测试用例1 ([5,1,7,3],[9,2,11,4],[13,6,15,8],[0,10,14,12]) 示例输出: 1: Down 2: Down 3: ...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.