Questions tagged «puzzle-solver»

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

12
3升和5升水罐拼图
您可能已经在《虎胆龙威:复仇》中看过这个问题。这个问题是基于著名的3升和5升水罐拼图,但斜度略有不同。 仔细研究一些代码,当给出1到100之间的整数时,将使用3升的水罐和5升的水罐为您提供最快的说明,将相应的水量从喷泉中量出到水箱中。 两个水罐都没有等级。喷泉的水供应充足,并且假定在每次执行该代码后将水箱清空。 一旦水进入水箱,您将无法取水。 执行的格式如下: 输入: 4 例如。 输出量 如图所示,输出每个编号的步骤,然后输出5升水罐,3升水罐和水箱的体积计数。理货格式也如下所示。步骤数也必须在步骤结束时输出。 1) Fill 5L jug 5L: 5, 3L: 0, T: 0 2) Pour from 5L jug into 3L jug 5L: 2, 3L: 3, T: 0 3) Empty 3L jug 5L: 2, 3L: 0, T: 0 4) Pour from 5L jug into …

9
最小跳数
给定一个数字序列,找到从起始位置到结束并再次回到起始位置的最小跳数。 序列中的每个元素表示一个人可以从该位置移动的最大移动次数。 在任何位置,您最多可以跳动k个动作,其中k是存储在该位置的值。到达终点后,您只能使用以前未使用过的跳跃位置。 输入将以由单空格分隔的数字序列给出。输出应为单个数字,这是所使用的最小跳转数。如果无法结束并返回到起始位置,则打印-1 输入: 2 4 2 2 3 4 2 2 输出: 6(3个到达终点,3个返回) 输入值 1 0 输出量 -1 注意 假设序列的所有数字均为非负数 编辑1 “因此,应该很清楚,人们总是可以从最后一个位置跳下来”这一行。可能会造成混淆,所以我从问题中删除了它。这对问题没有影响。 获奖标准: 优胜者将是代码最短的那个。

1
交互式迷宫求解器
鲍勃被绑架,被困在迷宫中。您的工作是帮助他找到出路。但是由于这是一个非常黑暗和可怕的迷宫,他什么都看不到。他只有在碰到墙壁时才能感觉到墙壁,并且知道何时找到出口,但仅此而已。 由于他必须通过内存运行您的程序,因此它必须尽可能短。 注意:我从http://acmgnyr.org/year2016/problems.shtml中解决了这个问题,但略加修改,并亲自编写了法官程序/测试案例。 规格 这是一个交互式问题,因此您的程序将把输出输出到stdout,并接收来自stdin的响应。 招式您的程序可以输出一个right,left,down,up。 然后它将获得以下之一作为输入: wall-这意味着鲍勃撞墙了。鲍勃将留在同一个地方。 solved-鲍勃找到了出口!您的程序现在也应该退出而不打印其他任何东西。 ok -鲍勃能够朝着给定的方向移动。 如果迷宫没有出口,那么您的程序应该输出,no exit以让Bob知道他应该放弃。然后,您的程序应退出而不打印其他任何内容。 由于Bob急于离开,因此您的程序不应做任何无关紧要的动作。换句话说,您的程序不允许从相同的正方形向相同的方向移动两次。 这是代码高尔夫球,所以最短的程序胜出! 例子 在以下示例中,S是起始正方形,X是出口,#是墙,并且空格是有效正方形。由于没有一个正确的答案,因此这些只是解决方案的示例。还要注意,迷宫的图形就在那儿供您查看,您的程序不会将其作为输入。 ######## #S # ###### # # # #X# right ok right ok right ok right ok right ok right wall down ok right wall down ok right wall down solved ##### # S …

30
从原动力中恢复原动力
定义:素数幂是自然数,可以以p n的形式表示,其中p是素数,n是自然数。 任务:给定素数p n > 1,返回素数p。 测试用例: input output 9 3 16 2 343 7 2687 2687 59049 3 计分:这是代码高尔夫球。以字节为单位的最短答案将获胜。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

4
单词可以彼此相邻键入吗?
在阅读此书之前,我建议阅读这个小难题:https : //puzzling.stackexchange.com/questions/11408/longest-word-with-adjacent-letters-on-a-keyboard 我希望您编写一个程序,该程序带有一个参数,一个单词(仅小写字母),如果可以用键盘上的相邻键键入该单词,则输出“是”(请参见文章),如果该单词可以,则输出“否”不能用相邻的字母键入。 这是此挑战中使用的键盘布局: ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ | Q | W | E | R | T | Y | U | I | O | P | └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ | A | S | D | F | G | H | J | K | L | └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┘ | Z …

4
解决战块剧院难题
游戏BattleBlock Theatre有时包含一个谜题,这是Lights Out的广义版本。您有三个相邻的块,每个块表示一个介于1到4之间的水平,包括小节,例如: | |||| || 如果触摸一个块,则该块以及任何相邻的块都会增加其级别(从4换回1)。当所有三个块都显示相同的级别(与哪个级别无关)时,难题就解决了。由于触摸块的顺序无关紧要,因此我们通过触摸每个块的频率来表示一种解决方案。上述输入的最佳解决方案是201: | --> || --> ||| ||| |||| | || ||| || || || --> ||| 游戏可以很容易地概括出任意数量的方块,尽管对于某些数字而言,并非所有配置都可以解决。 挑战 给定一系列的块级别,返回需要触摸每个块以解决难题的频率。例如,上面的示例将作为给出142并可能产生201结果。如果没有解决方案,请返回您选择的一致输出,这与所有可能的解决方案(例如-1,空字符串)是有区别的。 您可以编写函数或程序,通过STDIN,命令行参数或函数参数以任何方便的列表或字符串格式进行输入,并通过返回值或通过打印到STDOUT进行类似输出。 您的代码应在一分钟内在一台合理的机器上返回所有测试用例的正确结果。(这不是一个完全严格的限制,因此,如果您的解决方案花费一分十秒,那很好,但是如果花费三分钟,那不是很好。好的算法可以在几秒钟内轻松解决它们。) 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 例子 解决方案不是唯一的,因此您可能会得到不同的结果。 Input Output 1 0 11 00 12 No solution 142 201 434 101 222 000 4113 0230 32444 No solution …

1
分组这些单元格!
该挑战基于游戏Layerz。 给定,在stdin上或作为函数参数,单元格的2D矩形数组,其中每个单元格包含一个空格(可以选择使用0代替空格,而不会受到任何惩罚),1、2、3或4 ; 找到一种方法将其划分为有效区域(如下所述),以使每个非空白单元格仅包含一个区域。然后,以任何合理的格式输出找到的解决方案。如果没有解决方案,则要么停止而不产生输出,要么输出一个假值,然后停止。 以下任何内容均构成有效区域: 包含1的单个单元格 包含2个且恰好是其非空白正交邻居之一的像元 包含3个和正好两个非空白正交邻居的像元 包含4个且恰好是其三个非空白正交邻居的像元 这是code-golf,因此以字节为单位的最短有效答案为准。 一些测试用例: 1.一个相当琐碎的: 这是解决方案,每个区域使用不同的颜色: 2.一个更有趣的 这是一个以上的解决方案,但这是其中之一: 3.较小的一个,包含空格,没有任何解决方案(取决于您是使用二进制之一来“捕获”这三个,还是使用三个来获取两者中的两个,要么留下一个一对不相邻的(因此不可分组的)对或单独一个对): 由于此网格没有解决方案,因此在指定该网格的情况下,您的程序应暂停而不产生任何输出。 4.这个(顶部2个向左移动一个单元格)确实有一个解决方案: 解: (右下角的2用于“捕获” 3) 5.因为我们需要一个包含四个方面的测试用例: 一种解决方案:

4
构建非地理幅度优化器™
非图是日本的益智游戏,其目标是根据连续区域的列表绘制黑白图片,如下所示: 将行或列的非地理大小定义为该行或列中连续黑色区域的数量。例如,第一行的非地理大小为1,因为该行中有一个2平方的区域。第8行的非地理大小为3,因为它的第2行,第2行,第1行。 空行或列的非地理大小为0。 您的任务是编写一个程序,使用一个非图的解决方案网格,并生成一个具有尽可能小的填充正方形的解决方案网格,其中每一行和每一列与给定的解决方案网格具有相同的非成像性。 例如,填充了所有正方形的非图格网在每行或每列上的非图量级为1: 只需在网格上有一条对角线条纹,就可以大大减少实心方块的数量,从而达到相同的非影像大小: 您的程序将从该文件中接收到50,000行的输入(1.32 MB tar.gz文本文件; 2.15 MB未压缩),每行代表一个16×16非图解决方案网格,其中随机填充(80%黑色)正方形。输出另外50,000行,每行包含对应输入网格的优化解决方案网格。 每个网格都表示为具有43个字符的base64字符串(从左到右,然后从上到下编码正方形),您的程序将需要以相同格式返回其输出。例如,文件中的第一个网格为E/lu/+7/f/3rp//f799xn/9//2mv//nvj/bt/yc9/40=,并呈现为: 网格从其开始E映射到000100,因此第一行的前六个单元格除第四个单元格外均为白色。下一个字符是/映射到的字符111111,因此接下来的6个单元格全为黑色-依此类推。 您的程序实际上必须为50,000个测试用例中的每一个返回一个具有正确的非地理大小的解决方案网格。如果没有发现更好的结果,则可以返回与输入相同的网格。 返回最少填充总数(以任何语言显示)的程序是赢家,而较短的代码是决胜局。 当前记分牌: 3,637,260 —爪哇Sleafar 7,270,894 -Matlab瑕疵 10,239,288 —乔·Z·巴什(Bash)

2
逻辑点形状
游戏 最近,我的大部分时间都花在了手机上的一个令人上瘾的游戏中,名为Logic Dots,这激发了我编写这一挑战的灵感。如果我向您展示游戏画面,则更容易解释这些规则,因此以下是未解决且已解决的难题的屏幕截图: 现在,这里要注意三件事。 游戏板(中心的4x4正方形网格) 所需的形状(从顶部开始,在第二个栏中的链接点,在乐谱和菜单下等)均为全线,或者a由1个矩形组成 行和列上的数字,表示解决方案中列中需要多少个点 游戏的目的是使所需的形状适合网格。您可以旋转形状,但不能斜入。 在解决方案中,请注意,所有形状仅创建一次(因为它们仅在所需的形状中创建一次),在这种情况下,它们都是水平的,但也可以是垂直的。正方形中的粉红色表示未使用的正方形。 这是一个更大,稍微更复杂的网格: 请注意,在未解决的难题中,已经有一些正方形填满。灰色的正方形表示您不能在其上放置点的被遮盖的正方形。带有尾巴的点告诉您该点处有一个点,并且它在尾巴的方向上链接了至少一个点,但在任何其他方向(包括相反的方向)上都没有链接。 符号 对于本文的其余部分,我将使用以下符号来指代董事会: <,>,^,v-表示一个预先放置的点,其尾部沿点的方向延伸 *-表示一个点。如果在未解决的网格(输入)上给出,则它是单个形状。如果是输出,则将其连接到其周围的点。 #-表示被遮挡的网格正方形(您不能在其中放置点) -,| (连字符和横线)-分别表示一个带有左右尾巴的点和一个带有上下尾巴的点 **(空格字符)-**表示空白 使用这些符号,后一种示例情况(未解决)可以表示为: < # ^ # 解决方案可以表示为: *< * * * * * * * *#* ^ # * 请注意,没有两个形状可以水平,垂直或对角线接触,因此以下情况无效: *** ** ** 挑战 您面临的挑战是解决从4x4到9x9的所有逻辑点难题。您将收到四行输入,然后是游戏板。这些行将如下所示: 第一行,形状-要查找的形状,每个形状均以表格形式给出sizexquantity(例如,3x2对于长度为三的两个形状),并以空格分隔。示例行:3x1 2x1 1x1 第二行,列-每列所需的点数的空格分隔列表。示例行:1 1 2 2 …

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

1
帮助贝丝逃离沙漠
与其他载水难题类似,此挑战的独特方面使其完全不同。 贝丝位于沙漠中的一片绿洲。湖中有大量的水,但不幸的是只有X个水桶,每个水桶的水容量为Y升。 贝丝可以手里拿着2个水桶,但要生存,她每行驶一公里必须喝1升水。她还可以在中途留下一些水桶(水不会蒸发)。 挑战 找出公式,并写出最短的解决方案,该解决方案适用于X和Y的正整数值,并计算Beth可以从绿洲经过的最大距离。允许在桶之间移动水。 例 X = 3,Y = 5 贝丝(Beth)从绿洲离开1个完整的桶3KM,然后返回(有绿洲的最后一杯饮料) 贝丝(Beth)在3KM点带来了另一个满满的铲斗,现在那里有12L。 贝丝可以前进到6公里,并在桶中放4升水。 回到3KM点。她现在只有2升水可以回到绿洲。 加满水桶,行驶至6KM点。她现在有8升水。 一直到15KM点。 答案是:15 输入输出 您可以直接在代码中定义X / Y或从输入中读取。结果可以放在变量或输出中,以最短者为准。

2
解释重复!
这项挑战是有关重复的两个挑战系列中的第一个。第二个即将到来。 在一种叫做重复的语言(我刚刚写的东西)中,包含一个无限的字符串12345678901234567890...,带有1234567890永远重复。 以下语法可用于输出数字: +-*/:这会将运算符插入重复数字的字符串中。 例子: +-> 1+2= 3(在和之间+插入一个)+12 +*-> 1+2*3= 1+6= 7(与上面相同,但现在使用两个运算符) /-> 1/2= 0(重复使用整数除法) //-> 1/2/3= 0/3= 0(重复使用带有多个减法和除法的“左关联”) 插入每个运算符时,除非有,否则它的左边有一位数字c(请参阅下文)。 c:与字符串中的下一位数字连接。 例子: c+-> 12+3= 15(c“继续” 1并将其与下一位数字串联起来2,形成12) +c-> 1+23=24 ccc -> 1234 ():用于处理数字的括号。 例子: (c+)*-> (12+3)*4= 15*4= 60(重复使用操作顺序) (c+)/c-> (12+3)/45= 15/45=0 (cc+c)/-> (123+45)/6= 168/6=28 s:跳过数字(从无限字符串中删除数字)。 s+-> 2+3= 5(s跳过1) csc- > 124(第一cconcats …

1
像ABC解算器一样容易
Easy As ABC,也称为“ End View”,是一个难题,您将得到一个带有字母的空白网格;您必须部分填写表格,以便每个字母和每行中的每个字母正好位于其中;此外,行(或列)末尾的字母必须是从该方向在该行(或列)中可见的第一个字母。您在此代码高尔夫球中的目标将是解决“简单作为ABC”难题。 例如,这是今年MIT Mystery Hunt的Easy As ABC拼图,使用字母MIC: 解决方案是: (很抱歉,C上的工件;我试图从其余的难题中删除不相关的信息。) 输入输出 输入将是字符串数组或可能带有定界符的字符串。它将从左上角开始,然后顺时针旋转。例如,上面的难题可以这样输入: ".CMM.M|....IM|.....I|C.ICI." 输出应为有边界或无边界的已求解网格。它可以是字符数组,字符串数组或任何其他方便的格式。必须接受相同的“空白”字符作为输入并显示为输出,但是该空白字符可以是任何东西。如果它们是单个字符串,则输入和输出都必须具有相同的分隔符(输入的两边之间以及输出的行之间)或根本没有分隔符。 对于无法解决的难题,您必须输出解决方案无法理解的内容。您可能会认为没有一个难题有多个解决方案。 您必须允许任何数量的字母和任何大小的网格;所有用过的字母将出现在网格的边框中。 这是代码高尔夫:通常,最短的代码胜出! 测试用例 "T.AA..|.T.TSS|..TST.|A...SS" "R.RU..|B.B..B|.UR.UB|UR..B." "N...NK|E.NK.K|..KK..|....EK" "CA..DBD|.B..CC.|.D.DEB.|DB.A..A" "...DDEBE|DC..EBBD|BA..ABF.|E..FECDE"

1
构造正交对角希腊拉丁广场
考虑一个由Nx个N唯一元素组成的网格。每个元素都有一个字母(从A到第Nth个字母,包括端点)和一个数字(从1到N,包括端点)。因此,每个数字/字母对恰好在网格中一次。 您的工作是安排一个网格,以便: 每行,每列和对角线(包括换行)仅包含每个字母和数字一次。 通过包装,我的意思是 * * * # * * * # * * * # * * * # * * * * * * * * # 是对角线,以及碰到边缘的所有类似对角线。 一个示例5x5网格是: A1 B2 C3 D4 E5 C4 D5 E1 A2 B3 E2 A3 B4 C5 D1 B5 C1 D2 E3 …

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

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.