Questions tagged «grid»

对于涉及网格的挑战。

4
找到我的话!
挑战的想法是从字典中的字母网格中找到所有单词。您的输入应来自stdin或函数arg,并将采用以下格式: [your dictionary as a list of space sep words] [a grid of letters] Example: The cool car looc thea jopr 寻找比赛的规则 如果在板上对角,水平或垂直找到匹配项(不区分大小写),则该匹配项有效。方向无关紧要(例如lookmatchs kool)。如果同一单词有多个匹配项,则将它们全部标记。 输出: 您的输出将是您得到的网格-稍有变化,即字母将以空格分隔,行将以双倍间距排列。例: Input: looc thea jopr Output: l o o c t h e a j o p r 为了表示比赛,您将在两个字母之间放一个箭头。箭头(/\-|X)指向匹配在一起的每对字母。X如果使用/\交叉。 例子: Input: The cool car looc …

3
填充任意冰块托盘
假设此空间网格和X代表一些形状奇异的空冰块托盘的横截面: X X X X X X XX X XX X XXXXXX XXXXXXXXXXXXX 不带X的列表示无法容纳水的托盘中的孔或缝隙,从而排入了无限容量的水槽。从网格的最左边或最右边掉落的水也进入这个无尽的水槽。 如果我们将水龙头放置在托盘上方,并让它们充满水直到所有隔间中的水位保持稳定,则填充的确切隔间将取决于水流​​在托盘上方的确切位置。(假设有稀薄,稳定的水流,没有飞溅。) 例如,如果我们的水龙头F在最左边的网格列上方 F X X X X X X XX X XX X XXXXXX XXXXXXXXXXXXX 水会跌落到该X列的最顶部,并左右扩散,左半部分溢出到下方的水槽中,右半部分填充2×1隔室。一旦隔间装满,右边的一半水就无处可流,只能流入水槽,并且各处的水位基本稳定。 关闭水龙头,托盘现在看起来像这样:(与~水一起使用) X X X X~~X X XX X XX X XXXXXX XXXXXXXXXXXXX 同样,如果我们将水龙头定位如下: F X X X X X X …

1
欢乐欢乐
背景 美国对接送服务有着独特的热爱-故意操纵选举区来预测某些投票结果。就在最近,最高法院审理了一个载人妖案。尤其是与种族有关的游击队员被裁定为非法,并导致要求重划分区线。 给定一个自治市的矩形地图(二维数组),您将绘制区域线以帮助您的政党获得最大的代表权。就是说,你会很高兴。每个市政当局都有两个政党,0并且1。地图将由正方形0或正方形组成1。这是一个示例地图: 挑战 您将地图分组为地区,以便该1聚会至少获得输入所指定的地区数。 输入项 输入将包括一张地图,要绘制的区域数以及该1方需要赢得的最小区域数(最小分数)。 输出量 输出将是各地区的地图。每个地区将唯一地由大写字母组成。是的,这意味着不超过26个区。 如果没有可能的输出,则输入的一方赢得了足够的分区,请执行以下任一操作: 打印“我们尝试过...” 致命错误,因为该党在选举结果中受到不可弥补的伤害 或两者 规则(也很重要) 所有地区必须是连续的 地区中可能没有其他地区 每个区必须至少有四个节点。输入内容将与规则一致,这意味着number_of_districts * 4地图中至少会有节点 每个政党的分数是其占多数的区数 如果一个区的0s和1s 数目相同,那么任何一方都不会从中受益 正常的不作弊规则 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 测试用例 1. Input 1. Output 2. Input 2. Output 3. Input 3. Output districts: 5 Image and map districts: 3 Image below districts: 3 fatal error …

3
生命游戏arrowlits
背景 这项挑战是为了纪念Apsiller,他们凭借自己的挑战赢得了2016年PPCG最佳影片中的“ 看起来并不那么简单”类别的奖,我的4音符音乐盒可以播放那首歌吗? 恭喜你! 在他们的“关于我”页面上,该用户有一个非常精美的模拟器,用于“ 生命游戏”蜂窝自动机。(严重,请检查一下。)另一方面,单词aspillera在西班牙语中代表“ arrowslit”。鉴于这些事实,这一挑战是关于“人生游戏”中的箭眼。 生命游戏arrowlits 在GoL中,我们将用滑翔机代表一个箭头,并用一系列方块代表一堵墙。一架滑翔机从上方接近墙壁,并试图飞过墙壁的缝隙(箭头所示)。您的任务是检查滑翔机是否穿过箭孔或撞到墙上。 输入项 您的输入是位网格,代表GoL配置。您可以采用任何合理的格式(任意两个可离散打印的ASCII字符的多行字符串,字符串列表,2D整数数组,2D布尔数组等)。为了清楚起见,下面将使用字符的多行字符串.#。 确保输入具有多个属性。首先,它的高度是2N一些Ñ≥6 ,其宽度至少是2N + 2。输入将全部为.s,除了在最上面的三行中的某个位置是滑翔机,而在中间的两行中是一堵墙。滑翔机将向西南或东南方向移动,其位置应确保如果移除了墙,则滑翔器在到达底部边缘之前不会穿过侧边缘(但可能会到达网格的某个角)。滑翔机最初与左边缘和右边缘分开至少.s 步长。它可以处于任何阶段。 墙由块组成,这些块由一列.s 隔开,但在一个地方,它们之间至少由两列.s 隔开。像滑翔机一样,最左边和最右边的块也与边缘分开.s 一步。左边缘上总是至少有一个块,而右边缘上总是有一个块。 这是有效输入网格的示例: ....#...................... ..#.#...................... ...##...................... ........................... ........................... ........................... .##.##............##.##.##. .##.##............##.##.##. ........................... ........................... ........................... ........................... ........................... ........................... 输出量 如前所述,您的任务是确定滑翔机是否撞入墙壁或使其滑到南边。出于此挑战的目的,如果配置不再由单个滑翔机和木块墙组成,则会发生崩溃,无论以后在仿真中发生什么。下图显示了东南滑翔机在两个不同的阶段中不会崩溃的最小间隙(西南滑翔机的条件是对称的)。 ...#........... .#.#........... ..##........... ............... ............... ##...........## ##...........## ...#........... ....#.......... ..###.......... ............... ............... ##...........## …

1
找出Android锁定模式
假设您看到您的朋友在他们的Android手机中输入了他或她的密码。您不记得他们是如何制作图案的,但是您仍然记得图案的外观。作为您关心的朋友,您想知道他们的密码有多安全。您的工作是计算形成特定图案的所有方式。 Android模式如何运作 模式是在3x3的节点网格上绘制的。在一种模式中,无需访问屏幕即可访问一系列节点。他们访问的每个节点都通过一条边连接到前一个节点。要记住两个规则。 您最多只能访问一个节点 边缘可能无法通过未访问的节点 请注意,尽管通常很难执行,因此在实际的android锁组合中并不常见,但可以像Knight一样移动。即,可以从一侧移动到不相邻的拐角处或以另一种方式移动。这是采用此举的两种模式示例: 这是正在执行的动画Gif。 解决模式 典型的模式可能如下所示: 对于这种简单的模式,有两种方法可以绘制两种模式。您可以从两个松散的一端开始,然后穿过突出显示的节点到达另一个节点。尽管对于许多模式而言都是如此,但对于人类通常采用的模式而言,并非对所有模式都如此。 考虑以下模式: 有两种立即可识别的解决方案。从左上方开始的一个: 还有一个从底部中心开始: 但是,因为一旦选择了一条线,就允许它通过一个点,因此从顶部中间开始有一个附加的花样: 这个特定的模式有3个解决方案,但是模式可以有1到4个解决方案之间的任何位置[需要引用]。 以下是每个示例的一些示例: 1。 2。 3。 4。 输入输出 节点可以表示为零到九之间的整数,它们的等效字符串或a到i(或A到I)的字符。每个节点必须具有这些集合之一中的唯一表示。 解决方案将由包含节点表示形式的有序容器表示。节点的顺序必须与传递顺序相同。 模式将由节点对的无序容器表示。每对代表一条开始连接该对中两个点的边。模式表示不是唯一的。 您将通过标准输入方法将模式表示作为输入,并通过标准输出方法输出创建相同模式的所有可能解决方案。 您可以假设每个输入将至少具有一个解决方案,并将连接至少4个节点。 如果您愿意或被语言选择所迫,则可以选择使用有序容器代替无序容器。 测试用例 节点按以下模式排列: 0 1 2 3 4 5 6 7 8 让我们{...}成为一个无序的容器,[...]成为一个有序的容器,然后(...)成为一对。 以下输入和输出应匹配 {(1,4),(3,5),(5,8)} -> {[1,4,3,5,8]} {(1,4),(3,4),(5,4),(8,5)} -> {[1,4,3,5,8]} {(0,4),(4,5),(5,8),(7,8)} -> {[0,4,5,8,7],[7,8,5,4,0]} {(0,2),(2,4),(4,7)} …

8
用1到N填充NxN网格的行,列和对角线
任务 给定输入N,生成并输出一个NxN网格,其中每一行,每一列和两个对角线都包含数字1到N(或0到N-1,如果更容易)。 输入项 输入是一个正整数N。它代表网格中的列数和行数。对于这个问题,您可以假设N将是一个合理的大小,4 ≤ N ≤ 8或者(1 ≤ N ≤ 8如果您获得以下红利)。 输出量 输出将是N× N网格。在网格中,每一行仅包含数字1到N,每列仅包含数字1到N,长度的两个对角线N(一个从(0,0)to (N-1,N-1)到一个从(0,N-1)to到(N-1, 0))仅包含数字1到N。您可以使用数字0到N−1。对于每种N,都有许多可能的解决方案,您只需要打印找到的第一个即可。您无需在数字之间打印空格。 约束条件 您的代码应能够重复产生的结果N >= 7。也就是说,如果您N = 7每次都能实际运行并从代码中获取解决方案,那么您就很好。就绝对限制而言,您的代码N = 7每次运行都应能够在10分钟内解决(即,如果您依赖随机数,则在最坏的情况下,您的代码仍应在10分钟内完成N = 7) 。 例子 输入: 4 一种可能的输出: 1 2 3 4 3 4 1 2 4 3 2 1 2 1 4 3 输入: 5 …

5
旅行的O
世界是五乘五的细胞阵列。它包裹在所有侧面。可以像... XXXXX XXXXX XXOXX XXXXX XXXXX 您是O。您喜欢环游世界,并且遵循以下规则(以C为当天): 在黄金时期,您会怀旧。返回到昨天开始的地方。 在奇怪的日子里,你会想家。如果可能,将水平步移到离家更近的地方,如果可能,将水平步移到离家近的地方。忽略世界包装是为了确定紧密度。 在偶数天,您都会感到冒险。向南移动C / 2步。 在平常的日子里,您会感到冒险。移到东墙。 在斐波那契的日子里,世界向南扩展了一排。 在三角天,世界向东扩展一列。 如果要同时应用上述两个或多个规则,请按照列出的顺序应用它们。例如,在一个奇特的黄金日,首先返回到昨天开始的地方,然后再离家更近一步。 您生活在(初始)世界的中心,即位置(2,2),从西北角零索引开始。从第一天开始您的旅程。 输入项 一个整数N。 输出量 您的X和Y坐标在第N天,从西北角零索引,以一个空格分隔。 测试用例及解释 给定输入3,正确的输出为: 2 3 我们可以一次完成这一天。从第1天开始,我们需要执行以下操作: 奇数,正方形,斐波那契和三角形 素数,偶数和斐波那契 素数,奇数,斐波那契和三角形 视觉形式: 第1天第2天第3天 XXXXX XXXXXX XXXXXX XXXXXXX XXXXX XXXXXX XXXXXX XXXXXXX XXOXX-> XXXXOX-> XXXXXX-> XXXOXXX XXXXX XXXXXX XXOXXX XXXXXXX XXXXX XXXXXX XXXXXX …
26 code-golf  grid 

25
输出数独板
今天的挑战很简单:无需输入任何内容,即可输出任何有效的数独板。 如果您不熟悉数独,则Wikipedia描述了有效的面板应该是什么样的: 目的是用数字填充9×9网格,以便组成该网格的每列,每一行以及9个3×3子网格(也称为“框”,“块”或“区域”)包含从1到9的所有数字。 现在这就是事情了……有6,670,903,752,021,072,936,960个不同的有效数独板。其中一些可能很难压缩并以较少的字节输出。他们中的其他人可能更容易。挑战的一部分是弄清楚哪些板将是最可压缩的,并且可以以最少的字节输出。 您提交的内容不必每次都输出相同的板。但是,如果可能有多个输出,则必须证明每个可能的输出都是有效的电路板。 您可以使用此脚本(感谢Magic Octopus Urn)或任何这些答案来验证特定网格是否为有效解决方案。它将[1]为有效板输出a ,为无效板输出其他任何内容。 我不太挑剔您输出答案的格式,只要它显然是二维的即可。例如,您可以输出9x9矩阵,9个3x3矩阵,一个字符串,字符串数组,9位整数数组或9个带有分隔符的9位数字。一维输出81位数字是不允许的。如果您想了解特定的输出格式,请随时在评论中问我。 像往常一样,这是代码高尔夫,因此请用您选择的语言写出最短的答案!

9
数字储物柜!
给定正整数<100(从1到99,包括1和99),输出那么多的储物柜。 储物柜的定义如下: +----+ | | | | | | | nn | +----+ 其中nn的储物柜号码以10为底。如果有1位数字,则其前面用0表示。例如,2号储物柜显示数字02。 储物柜可以堆放,但最多只能堆放2个: +----+ | | | | | | | on | +----+ | | | | | | | en | +----+ on表示奇数,en偶数。储物柜也可以彼此相邻放置。 +----+----+ | | | | | | | | | | 01 | …

5
解析二维语法
背景 爱丽丝(Alice)和鲍勃(Bob)正在创造一种高尔夫语言,以赢得每一个PPCG挑战。爱丽丝想制作一种二维语言(如> <>),但鲍勃(Bob)更喜欢像J中那样的前缀-前缀语法。作为一种折衷,他们决定创建一种二维前缀-前缀语言。解析器很难编写,他们需要您的帮助! 语法规范 在Alice和Bob的语言中,有变量(由小写ASCII字母表示a-z)和函数(由大写ASCII字母表示)A-Z。可以使用一个或两个参数来调用一个函数。一个方案是字母矩形网格a-zA-Z和空间,以及左上角不能包含空格。这是一个有效程序的示例: F Gy H R x 解析程序后,它将转换为C风格语言(C,Java,Python ...)的表达式,其中包含单字母变量和函数调用,格式为<func>(<arg>)或<func>(<arg1>,<arg2>)。例如,上面的程序产生以下表达式: F(H(R(x)),G(x,y)) 解析过程的详细信息如下: 这些空格只是填充符,因此不会被解析。 每个变量a-z始终被解析为自身。 每个函数都A-Z被解析为一个函数调用。它的参数是它下面和右边在网格中最接近的表达式(按此顺序)。如果仅存在其中之一,则将其作为唯一参数。您可以假设所有函数在网格中至少有一个参数。 在上面的示例中,变量x和y被解析为自身。该函数在其R下方和x右侧没有任何内容,因此将其解析为单参数调用R(x)。同样,由于位于下方,因此H被解析为。该功能具有以下,并在其右侧,所以它解析为,和类似的。左上角解析的表达式是解析过程的结果。H(R(x))RGxyG(x,y)F 输入输出 您的输入是一个非空的矩形字符数组。它始终是Alice和Bob语言的有效程序,但是它可能包含未在输出中使用的表达式。您的输出应为上述过程产生的解析表达式。 规则和计分 您可以编写功能的完整程序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 这些以格式提供grid <newline> expression,大小写---之间带有连字符。SE格式将某些行留空,但应使用空格填充。 x x --- x y z x --- Fx F(x) --- Fx y F(y,x) --- ABu A(B(u)) --- G H k G(H(k)) --- ABCA …

3
在W×H的数字网格中找到最大的N位数
编写一个程序或函数,该程序或函数需要一个正整数N和一个宽度为W,高度为H(也是正整数)的十进制数字网格(0到9)。您可以假设N小于或等于W和H中的较大者。 打印或返回在网格中水平或垂直出现的最大连续N位数字,以正常阅读顺序或相反顺序书写。 不考虑数字的对角线。 网格不环绕,即不具有周期性边界条件。 例如3×3网格 928 313 049 将具有9作为输出为N = 1,94作为输出为N = 2,并且940作为输出为N = 3。 4×3网格 7423 1531 6810 将具有8作为输出为N = 1,86对于N = 2,854对于N = 3,并且7423对于N = 4。 3×3网格 000 010 000 1对于N = 1,10对于N = 2和N = 3 ,将具有输出(010对于N = 3也有效)。 1×1网格 0 0N = 1的输出。 您可以采用任何方便的合理格式输入。例如,网格可以是换行符分隔的数字字符串,多维数组或数字列表列表等。如果输出零是网格的一部分,则允许在输出中使用前导零。 这是代码高尔夫球,因此以字节为单位的最短代码胜出,但我还将奖励布朗尼点(即更有可能的投票),以表明他们的算法在计算上是有效的。
25 code-golf  math  number  grid 

3
冰高尔夫挑战赛
这项挑战的目标是编写一个程序或函数,以返回完成给定课程所需的最少罢工量。 输入项 课程的布局可以采用您喜欢的任何合适方式和格式。(从控制台读取,作为输入参数传递,从文件或任何其他多行字符串,字符串数组,二维字符/字节数组读取)。 球的起始位置和球洞也可以作为输入传递,不必从输入中解析。在测试用例中,它们包含在课程中,以确保对实际位置没有混淆。 您可以将输入字符重新映射到其他字符,只要它们仍可识别为不同的字符(例如,可打印的ASCII字符)。 输出量 对于以合理格式(字符串,整数,浮点数或描述结果的ku句)作为输入传递的任何路线,程序必须返回最低的得分(到达空洞所需的最少击球次数) 如果该课程无法克服,则返回-1(或您选择的其他任何不正确的值,对于可击败的课程都不会返回)。 例: 在此示例中,位置以从0开始,X / Y,从左到右,自上而下的方式标记-但是您可以使用任何喜欢的格式,因为结果无论如何都与格式完全无关。 输入: ########### # ....# # ...# # ~ . # # ~~~ . # # ~~~~ # # ~~~~ # # ~~~~ o # # ~~~~ # #@~~~~ # ########### Ball (Start-Position): 1/9 Hole (End-Position): 8/7 输出: 8 …

3
实施简化字距调整
介绍 字距调整是指调整文本字母之间的间距。例如,考虑Top用以下三个字形写的单词: ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... 我们可以用点填充字形之间的间隙并完成它,但是间隙看起来太宽了。相反,我们将字形滑动到左侧,以便它们几乎可以接触: #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... 看起来好多了!请注意,的条形图T在的左边框上方o。在此挑战中,您的任务是为此类矩形字形实现一个简单的字距调整程序。 字距调整过程 考虑具有.和#形状相同的两个矩形2D字符数组。在简单的字距调整过程中,我们首先将数组并排放置,中间放置一列.s。然后,我们将#右阵列中的每一个向左移动一步,直到#左右阵列中的s正交或对角相邻。字距调整的结果是引入相邻s 之前的步骤#。您的任务是实施此过程。 让我们举个例子: Inputs: ..### #.... #.... ..##. ...#. ...## ..### ....# Process: …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

11
计数单位平方圆通过
写一个程序或函数给定的整数半径ř回报单元的方格数与半径的圆周ř以原点为中心穿过。如果圆正好通过网格上的一个点,该点不算作通过相邻单位正方形的点。 这是r = 5的图示: Kival Ngaokrajang的插图,可在OEIS上找到 例子: 0→0 1→4 4→28 5→28 49→388 50 →380325 →2540 5524→44180 5525→44020


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.