Questions tagged «path-finding»

几何或图形理论中的问题,涉及受约束(障碍)影响的最佳路径(例如最短路径)。

2
那细菌去哪儿了?
介绍 您是一位研究细菌运动模式的生物学家。您的研究团队在培养皿中有一堆,您正在记录它们的活动。不幸的是,您的资金严重不足,而且买不起摄像机,因此您只需要定期为盘子拍照。您的任务是创建一个程序,以跟踪这些图片中细菌的运动。 输入项 您的输入是两个2D字符数组,它们以任何合理的格式表示皮氏培养皿的连续图片。在这两个数组中,字符.代表空白空间,并O代表细菌(可以根据需要选择任意两个不同的字符)。同样,通过在四个基本方向之一上将某些细菌移动一步,从“之前”阵列中获得“之后”阵列。特别地,阵列具有相同的形状。细菌会同时移动,因此如果其中一个细菌移开了,它们中的一个可能会移动到已经包含另一种细菌的空间中。确保“ before”数组的边界仅包含空白空间,并且至少有一个病菌。因此,以下是一对有效的输入: Before After ...... ...... .O..O. ....O. .OO.O. .OO.O. ...... ..O... 输出量 您的输出是单个2D字符数组,其格式与输入相同。它是从“之前”阵列中获得的>^<v,方法是根据移动的方向(使用移动的4个不同的字符)替换其中一个已移动的细菌。可能会有几种输出,但是您只能给出其中一种。在上面的示例中,一种可能的正确输出是 ...... .v..O. .>v.O. ...... 输出中允许不必要的移动,并且细菌可以交换位置,因此以下内容也有效: ...... .v..v. .>v.^. ...... 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 我对相对高效的算法感兴趣,但我不想完全禁止蛮力。因此,在现代CPU上在10分钟内解决最后一个测试用例时,可获得-75%的奖励(我无法测试大多数解决方案,因此在这里我会信任您)。免责声明:我知道存在一种快速算法(搜索“不相交路径问题”),但是我自己没有实现它。 其他测试用例 Before ...... .O..O. ..OO.. ...... After ...... ..O... ...OO. ..O... Possible output ...... .>..v. ..vO.. ...... Before ....... .OOOOO. .O..OO. …

1
恐怖电影搜寻派对
剧情:吉米失踪了;我们必须找到他。我们应该分手。 剧情转折:吉米已经死了。 但是,我们的演员不知道这一点,因此他们仍然需要搜索整个区域。有N列x M行(1 <= M,N <= 256)的单元格网格,其中任一网格标记为“ S”作为起点“”。代表开放空间,“#”代表障碍物。这是地图。 有0 <= p <= 26个Costars,0 <= q <= 26个Extras和1个star。最初,每个人都在标记为S的单元格中。 规则 每个人的视线半径如下所示: ... ..... ..@.. ..... ... 星星用“ @”表示,古斯塔用大写字母表示,以“ A”开头,多余部分用小写字母表示,以“ a”开头。最初,起点周围的视线半径已标记为已搜索。如果这构成了地图的整个开放空间,则游戏结束。每转,按以下顺序: 每个人同时使国王移动(要么静止不动,要么移动到8个相邻牢房之一)。 每个人周围视线半径内的所有像元都算作搜索。 如果肋骨看不见别人,她就会死。如果一个额外人员看不到肋骨,星星或至少2个其他额外人员,他会死。这些事件同时发生 -也就是说,单回合就没有死亡的连锁反应;检查以上条件,每个要死的人都会立即死亡。 如果已经搜索了地图上的所有开放空间,则搜索结束。 笔记 任何时候都可以有多个人在同一广场上,这些人可以看到彼此。 障碍永远不会阻碍视线,只会阻碍运动。人们可以在熔岩上看到彼此,呃...熔岩? 确保地图上的开放空间由国王移动连接。 最初的“ S”也被认为是开放空间,而不是障碍物。 降落在开放空间上的任何国王举动均有效。例如,以下举动是合法的: .... .... .@#. ---> ..#. .#.. .#@. .... .... …

1
生成图片迷宫
挑战 编写接受“图像”并输出由该图像形成的图片迷宫的程序/功能。 输入值 您的程序应接受两个参数: 我,形成迷宫的形象 S,一个布尔值,指定是否显示迷宫的解 我的格式如下: ....... .#####. .#####. ####### .#####. .#####. ....... 其中#的是要包含在解决方案路径.中的单元格,而的是要排除的单元格。您可以用任意选择的字符替换.,,#和换行符,只要它们彼此不同即可。或者,您可以接受输入图像的实际位图。 输出量 产生的迷宫应采用以下形式: ############### # # # ### ####### # # #.........# # # #.#######.# # # #.#.......# # ###.#.######### ....#.#........ #####.#.####### # ...#..... # # #.#######.# # # #.........# # # ####### ### # # …

27
为*写翻译
任务很简单。为*语言编写口译员。 这是Wiki的更大链接。 只有三个有效的*程序: * 打印“ Hello World” * 打印0到2,147,483,647之间的随机数 *+* 永远运行。 根据此问题的规范,第三种情况必须是无限循环 输入: 可以通过我们的标准I / O规则通过任何可接受的输入方法进行输入 它将永远是以上程序之一 输出: 第一种情况应打印准确Hello World,带有或不带有尾行。 对于第二种情况,如果您的语言的整数最大值小于2,147,483,647,请使用您的语言的整数最大值 根据我们的标准I / O规则,第一种情况和第二种情况可以打印到任何可接受的输出。 第三种情况不应给出任何输出。 得分: 因为这是代码高尔夫球,所以最短的答案(以字节为单位)获胜。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

10
迷宫可以解决吗?
难题 如果迷宫n * m无法解析,则打印0 如果可以解决迷宫n * m(以1种或多种方式),则打印1。 (所以我不是在问路径,但是是否有可能解决!!!) 输入数组(2d): [[0,0,0,0,0,0,1],[0,0,0,0,0,1,0],[0,0,0,0,1,0,0],[1,0,0,0,0,0,0]] XXXXXXXXX XS XX X X X X X X XX FX XXXXXXXXX 0 = can pass through 1 = can not pass trough [0][n] is the last block of the first line [m][0] is the first block of the last …

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 …
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

2
解决冰迷宫
冰迷宫一直是我最喜欢的主食之一的神奇宝贝,因为他们的神奇宝贝黄金和白银登场比赛。您的任务是编写一个解决这些类型问题的程序。 顾名思义,冰迷宫主要由冰组成。一旦玩家在冰上向某个方向移动,他们将继续向该方向移动,直到与某个障碍物碰撞为止。还有可以自由移动的土壤,将阻止任何玩家在其上移动。最后的障碍是石头。石头不能与玩家占据相同的空间,如果玩家尝试进入其中,他们将停止移动,然后才能移动。 您将收到一个二维的值容器,例如列表列表或用换行符分隔的字符串,其中包含3种地板类型(冰,土壤和石头)中的每种的3个不同值。您还将收到两对(或其他等效的两个值容器),它们指示迷宫中的起点和终点坐标。这些可以是零或一个索引。 您必须输出一个动作列表(在N,E,S,W上有两个双射的4个不同值),这将导致玩家在执行时到达终点。 输入始终在迷宫周围有一个封闭的石头周界,因此您不必担心玩家退出迷宫 这是代码高尔夫球,因此最少的字节获胜 测试用例 这里.代表冰,~代表土壤,O代表石头。坐标为1索引。解决方案中的每个字母代表以该字母开头的方向(例如N=北) 输入项 OOOOO OO.OO O...O OOOOO Start : 3,3 End : 3,2 输出量 N 输入项 OOOOOOOOOOOOOOOOO O........O.....OO O...O..........OO O.........O....OO O.O............OO OO.......O.....OO O.............OOO O......O.......~O O..O...........~O O.............OOO O.......O......OO O.....O...O....OO O..............OO OOOOOOOOOOOOOO~~O OOOOOOOOOOOOOOOOO Start : 15,12 End : 16,8 输出量 N,W,N,E,N,E,S,W,N,W,S,E,S,E,N,E,N 输入项 OOOOOOOOOOOOOOOO O~~~~~OOOOO~~~~O O~~O~OOOOOOO~~OO O...O..........O …

13
谢尔宾斯基层
首先,/\您可以通过在下面添加一条线来创建类似于Sierpinski三角形的图案,从而... 任何松散的分支/或\再次分裂为两个分支:/\。 分支的任何碰撞都将\/死,其下无任何东西(只有空格)。 重复这些规则将产生 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHart的启发) 编写一个程序或函数,该程序或函数接受一个正整数N,并将此模式的前N行打印到stdout,且前导或尾随空格不超过所需数量。 例如,如果输入是1输出,则必须为 /\ 如果输入是2输出,则必须为 /\ /\/\ 如果输入是8输出,则必须为 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等等。 字节最少的代码获胜。

4
一周中压缩的天数
输入星期几列表,则输出列表中最短的排序表示形式。 输入的格式是由一个或多个双字符子串的字符串Su(星期日), Mo(星期一), Tu(等), ,We,Th, Fr和Sa。输入不一定必须以排序的顺序给出。 要将输入转换为输出格式, 从星期天开始按星期几对输入进行排序(例如ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 如果不引起歧义,请将缩写词减少到一个字母。例如,之所以SuMoTuWe成为,SMTW是因为第一个S不可能在星期六,因为这样会使输出未排序(与T相同)。但是,ThFrSa应该成为ThFS,因为星期二和星期四都在星期五之前,并将其减小以TFS产生歧义。 如果输出为now MTWTF,则D改为输出(代表“ 工作日 s”)。同样,SS应该成为E一周结束。最后, SMTWTFS应该成为A对所有天。 输入和输出都必须是单个字符串。 由于这是code-golf,因此以字节为单位的最短代码为准。 测试用例: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu …

2
长跑赛车
系统将为您提供两个输入:一个以游程长度编码格式定义运行轨迹的字符串,以及一个大写字母,表示从其开始的车道。例如,字符串“ 3a4A6b5B”扩展为“ aaaAAAAbbbbbbBBBBBBB”。然后,使用扩展的字符串来创建轨道,如下所示: A) aaaAAAA B) bbbbbbBBBBB 这是一条有两条车道的赛道。小写字母代表空气。你不能在空中跑!大写字母表示可以行驶的道路。您的挑战目标是给定大写字母,输出从该车道开始行驶的赛车手能跑多远。如果赛车正上方或正下方有一条道路,则允许赛车手转换车道。他们也被允许倒退!在此特定轨道上,任何字母输入的输出均为0,因为这两个轨道都在位置1处没有可行驶的道路。 例子: 输入: “ 4A5B4c3C”,“ A” 此代码扩展为如下所示的轨道: A) AAAA B) BBBBB C) ccccCCC 此示例的输出为7,因为从车道A开始的跑步者可以向下移动至车道B,然后下降至车道C,最后到达第7位。 输入: “ 4A2B3D”,“ D” 跟踪: A) AAAA B) BB C) D) DDD 输出为3,因为从D道开始的跑步者无法进入B道或A道 输入: “ 4A4a4A3b6B5C”,“ A” 跟踪: A) AAAAaaaaAAAA B) bbbBBBBBB C) CCCCC 输出为12,因为A上的跑步者可以切换到B,然后最后返回A。“ C”的最大距离也是12。对于“ B”,最大距离是0。 输入: “ …

1
我曾经像您一样解决代码难题,但后来我却屈指可数
用箭头击中膝盖似乎是目前选择的伤害。因此,我提出以下高尔夫挑战。 您有一个冒险家,看起来像这样: O /|\ / | \ | | / \ / \ 给定一个文本文件,其中包含一个弓箭(绘制为}符号),一组墙壁(绘制为#符号)和一个冒险家,编写最小的代码,计算出应该发射箭头以击中的角度和初始速度他在膝盖上。 假设以下内容: 文件中的每个字符为0.5 x 0.5米。 从的中心发射箭头},即偏移量为0.25m, 0.25m 重力是 10ms^-2 箭重 0.1kg 箭头是一个点,即仅当箭头的坐标进入一个块时才发生碰撞。 最大初始速度为 50m/s 角度可能在0(直上)和180(直下)之间 击中冒险者腿部的任何部分都被认为是膝盖的重物。 一堵墙(#字符)占据整个0.5mx 0.5m的块。 箭头可以在文件的“顶部”上移动,但是没有什么可以阻止输入以#字符的上限开头。 您不能用箭头穿透墙壁。 不允许击中冒险者的任何其他部分! 如果不可能用膝盖打他,应该显示一个错误。 输入示例: # } O # /|\ / | \ # | # | / \ …

5
跳跃和奔跑
马修喜欢解决难题。每当他设法解决一个问题时,他都会开心地跳来跳去。最近,他真的需要这样做,因为流星雨在他不想掉入的地面上开了坑和洞。 您将获得Matthew想要穿越的风景的一部分,希望最终健康。地面以米为单位,每个米要么是普通地面,要么是一个洞。当他跑步时,他设法跨过每一米。另一种选择是跳跃,每步跨越四米。Matthew从第一个地面电表的最左端开始,想要到达最后一个地面电表(不过,不要超出它-想象一下在景观中给出的最后一个电表以外的无尽洞口)。 输入值 输入在标准输入上以单行形式给出,并以换行符终止。该线由短划线(-)或下划线(_)组成,分别表示地面或孔距计。输入示例可以是: ----__--___--- 给定的景观至少为一处,最长为30米,且始终从地面开始。 输出量 输出是在标准输出上给出的,表示对Matthew的一系列运动命令,即run(R)或jump(J)。如上所述, 奔跑命令使马修奔跑一米,而跳跃则使马修正向前进四米。对于上面给出的示例,可以进行以下移动: RRJRJRR 大致如下所示: 如果没有通过景观的安全路径,!则应打印一个感叹号()。 样本输入 -------- ----__--___--- -_______ -_-_-_-_-_- - 样本输出 JRRR RRJRJRR ! ! (最后的输出为空白,因为没有必要进行任何移动,但是我想Markdown无法解析它) 注意 只需一条可能的路径,因此程序输出不必与样本输出完全一致。只要给出解决方案(如果存在)并且每个移动命令都移动到地面并最终到达最后一个仪表,则输出有效。 标准错误的附加输出将被忽略。 获奖条件 最短的代码胜出,这是高尔夫界的惯例。如果出现平局,则以较早的解决方案为准。 测试用例 有两个测试脚本,包含相同的测试用例: bash(感谢Ventero) 电源外壳 在这两种情况下都调用:<test script> <my program> [arguments]例如./test ruby jumprun.rb或./test.ps1 ./jumprun.exe。 另一个注意 该任务是2011-W24期间在我的大学举行的高尔夫比赛的一部分。参赛者的成绩和语言如下: 104 –哈斯克尔 131 –哈斯克尔 154 – C …

30
消失的元素
给定一个字符串S和一个索引列表X,S通过删除每个索引处的元素来进行修改,并将S结果作为的新值S。 例如,给定S = 'codegolf'和X = [1, 4, 4, 0, 2], 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

2
打台球
在此代码高尔夫球中,您将必须确定在落入口袋中之前恰好击中n个垫子的最短击球的方向。 台球桌是具有以下特征的6口袋台球桌: 尺寸可变(a x b) 无摩擦:球将永远滚动直到落入口袋 口袋和球的大小几乎为零。这意味着仅当球具有相同的位置时,球才会落在口袋中。 球在开始时放置在左下角的孔中(但不会掉进去) 创建一个完整的程序或函数,该函数将表的尺寸(a,b)和要击中n个垫子的数量作为输入,并返回以最短路径度数精确击中n个垫子然后落入口袋的角度。 一 > 0 b > 0 0 <= n <10000000 0 < alpha <90(以度为单位)精度:至少10 ^ -6 例子 : 在a = 2,b = 1,n = 1的情况下,存在三种可能的路径:下图为(1)(2)(3)。数字(1)最短,因此输出应为atan(2)= 63.43494882292201度 对于该解决方案一个 = 2,b = 1,Ñ = 4是ATAN(4/3)= 53.13010235415598度 测试样品: a = 2, b = 1, …

3
切换,打印,重复
挑战来自未实施的esolang Pada。 考虑一个8位的数组,所有位都初始化为零。我们将引入一个非常简约的指令集来打印任意字符串。有两条指令,两条指令都带有一个参数N,该参数是位的索引: t N对于牛逼 oggle:这会改变位的值N。 p Nfor p rint:这会将所有8位都解释为一个字节,从bit开始N并环绕在end。与此字节对应的字符被打印到STDOUT。 让我们来看一个例子。我们要打印:=。我们天真地实现了以下目标(基于0的位索引): t 2 [0 0 1 0 0 0 0 0] t 3 [0 0 1 1 0 0 0 0] t 4 [0 0 1 1 1 0 0 0] t 6 [0 0 1 1 1 0 1 …

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.