Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

17
媒人媒人让我火柴
(尽管我们不会找到Find或捕捉到tryCatch) 这是实现一些有趣的R函数的多部分系列的第二部分。第一部分可以在这里找到。 任务: 您将以尽可能少的字节实现R的match功能。 输入: x,可能是空的整数列表/数组 table,可能是空的整数列表/数组 nomatch,一个整数值 incomparables,可能是空的整数列表/数组 输出: 一个O长度等于的整数的单个数组/整数列表x,其中每个值O[i]表示以下任一值: 第一个值的索引j,其中tabletable[j]==x[i] nomatch,这表明在没有价值table等于x[i] 或那x[i]是在列表中incomparables。 测试用例 All in the form x, table, nomatch, incomparables -> output outputs [], [1,2,3], 0, [5] -> [] [1, 2, 3], [], 0, [5] -> [0, 0, 0] [9, 4, 3, 6, 3], [9, 8, 7, …

6
减去折矩阵
挑战: 给定一个NxN矩阵,其中和八个不同的“折叠选项”之一,输出带有减去值的2D数组/列表。ñ≥ 2N≥2N\geq2 八个折叠选项是:从左到右;从左到右。右到左; 从上到下; 从下到上 从左上到右下; 从右上到左下; 从左下到右上;从右下到左上。 分步示例: 输入矩阵: [[ 1, 3, 5, 7], [ 0, 8, 6, 4], [ 1, 1, 1, 1], (a'th row in the explanation below) [ 1,25, 0,75]] 使用从上到下的折叠选项,我们将输出以下结果: [[ 1,-7,-5,-3], [ 0,22,-5,68]] 为什么?我们从上到下折叠。由于矩阵尺寸是均匀的,因此我们没有中间层可以保持原样。的 “第i行将由被减去第i行”(本来 “第i行用于奇数维矩阵); 因此成为。然后,将第行减去第行(对于奇数维矩阵,将是第行);因此成为。一种aa[1, 1, 1, 1](a − 1 )(a−1)(a-1)(a …

10
计算到n的最短路径数
这段代码的挑战将你计算的方法来达到多少nnn从开始222使用形式的地图x↦x+xjx↦x+xjx \mapsto x + x^j(与jjj一个非负整数),并在最少的步骤数这么做。 (注意,这与OEIS序列A307092有关。) 例 因此,例如,f(13)=2f(13)=2f(13) = 2是因为需要三个映射,并且三个映射的两个不同序列将发送222到131313: x↦x+x0x↦x+x2x↦x+x0orx↦x+x2x↦x+x1x↦x+x0x↦x+x0x↦x+x2x↦x+x0orx↦x+x2x↦x+x1x↦x+x0\begin{array}{c} x \mapsto x + x^0 \\ x \mapsto x + x^2 \\ x \mapsto x + x^0\end{array} \qquad \textrm{or} \qquad \begin{array}{c}x \mapsto x + x^2 \\ x \mapsto x + x^1 \\ x \mapsto x + x^0\end{array} 结果为2→3→12→132→3→12→132 \to …

9
我看到了您的BIDMAS,并提出了BADMIS
我看到了您的BIDMAS,并提出了BADMIS 挑战 给定一组数字,它们之间有一个运算符:“ 5 + 4 * 9/3-8”,对于基本运算顺序的每个排列:[/,*,+,-],返回表达式的所有可能结果。 规则 禁止标准漏洞 输入输出 输入必须使用中缀操作进行排序,但这是最简单的(字符串或数组) 您不需要支持一元运算符(例如“ -3 * 8 / +2”) 对于隐式解析类型的语言(例如45⟶45.0),可以用浮点数代替整数 输出必须是表达式的所有可能结果,没有指定的格式或顺序 所有输入均有效(例如,无需处理“ 7/3 + *”)。这也意味着您将永远不需要除以零。 运算符都是左关联的,因此“ 20/4/2” =“(20/4)/ 2” 这是Code Golf,因此赢得最少的字节数 测试用例(附说明) “ 2 + 3 * 4” = [14,20] 2 +(3 * 4)⟶2 +(12)⟶14 (2 + 3)* 4⟶(5)* 4⟶20 “ …

8
用跟随墙壁的蛇填充迷宫,直到被卡住
用蛇把迷宫填满(直到被卡住)。 蛇 蛇从给定的起点开始,指向EAST。它通过移动总是有墙壁或它的身体的一部分立即LEFT其头部(“的左手法则墙跟随 ”),直到它被卡住,因为它周围所有的头四个方向都被占用。(注意:卡住的蛇可能无法填满所有可到达的空间,但这不是目标!) 挑战 编写接受迷宫作为2D文本形式的输入的程序或函数: 输入可以采用任何合理的格式:例如,字符串列表,带换行符的单个字符串,文件。 迷宫有墙(“ #”),空白处(“ ”)和正好一个起点(“ o”)。 您可以选择 要么假设第一行和最后一行都是完整的墙; 或假设每个输入都具有隐式的外层墙 您可以假设起点在其正上方(北)具有一堵墙(或隐式墙),并且蛇可以在EAST或SOUTH方向上进行有效的起点移动。 您可以假定文本中没有其他字符(如果需要输入,则换行符除外)。 您可以假定所有行的长度都相同。 并打印/返回“填充的迷宫”作为输出,并附上蛇被卡住时的快照: 蛇的身体由>v<^指向其下一段的位置的字符表示 蛇的起点是其起点的方向(“ >”,除非必须立即转弯)或一个o字符(不需要保持一致) 蛇的终点是一个o角色 计分 常规代码高尔夫:最短代码胜出 例 in: ################################# # o # # # # ## ### ## # # ## ## ## ## # # ## ## ## ## # # …

5
同余数
定义: 如果一个内角正好是90度,则将三角形视为直角三角形。 如果数字可以由整数的比率表示,则该数字被认为是有理数,即和p/q,其中p和和q均为整数。 如果存在一个三边均是有理的面积的直角三角形,则数字n是全等数字n。 这是OEIS A003273。 挑战 这是一个决策问题的挑战。给定输入数字时,x如果x是全等数字,则输出一个不同且一致的值,如果不是一个全等数字,则输出一个单独的不同且一致的值x。输出值不一定需要使用您的语言为真/假。 特殊规则 出于此挑战的目的,您可以假设Birch和Swinnerton-Dyer猜想是正确的。另外,如果您可以证明Birch和Swinnerton-Dyer的猜想,请索取您的$ 1,000,000千禧年奖金。;-) 例子 (使用True全等数字False)。 5 True 6 True 108 False 规则和说明 输入和输出可以通过任何方便的方法给出。 您可以将结果打印到STDOUT或将其作为函数结果返回。请在您的提交中说明输出可以采用的值。 完整的程序或功能都是可以接受的。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

6
跨键盘走
给定一个单词(或任何字母序列)作为输入,您必须在每个字母之间进行插值,以使结果中的每个相邻字母对在QWERTY键盘上也相邻,就像您在巨型键盘上行走时键入输入一样。例如,“ 是 ”可能会变成“ y tr es ”,“ 猫 ”可能会变成“ c xz a wer t ”。 规则: 这是您应该使用的键盘格式: qwertyuiop asdfghjkl zxcvbnm 在此布局中触摸的任何一对键都被认为是相邻的。例如,“ s”和“ e”是相邻的,但“ s”和“ r”不是。 输入的“单词”将由任何字母序列组成。它只有字母,所以您不必处理特殊字符。 输入可以采用任何方便的形式:stdin,字符串,列表等。您可以选择任何更方便的方式。 输出可以采用任何方便的形式:stdout,字符串,列表等。字母大小写无关紧要,并且不需要保持一致。 键盘上的任何路径都是有效的,除了不能再越过上一个字母才能到达下一个字母。例如,“ hi ”可以变成“ h j i ”或“ h jnbgyu i ”,但不能变成“ h b h u i ”。 字母本身不相邻,因此“ poll ”不能成为“ poll ”。相反,它将需要变成类似“ …

11
将ASCII艺术旋转45度
您的任务是拍摄ASCII艺术图片,并将其输出顺时针旋转45度,并按缩放。缩放来自使用在字符之间引入间隔的格子图案。2–√2\sqrt 2 为了直观地进行说明,将按以下方式处理块:3 × 33×33 \times 3 123 456 789 变成 1 4 2 7 5 3 8 6 9 字符将不会变形,因此旋转后框会看起来很奇怪: +-+ | | +-+ 变成 + | - + + - | + 为了更清楚地说明该过程,输出由菱形格子图案组成,其中第一行对应于输入的左上角字符,下一行对应于右邻和右邻,下一行是邻邻,依此类推直到所有字符都已放置在晶格上。 例子 FISHKISSFISHKIS SFISHKISSFISHKISSFISH F ISHK ISSFISHKISSFISHKISS FI SHKISS FISHKISSFISHKISSFISS FIS HKISSFISHKISSFISHKISSFISHKISSFISH KISS FISHKISSFISHKISSFISHKISSFISHKISS FISHK SSFISHKISSFISHKISSFISHKISSFISHKISSF …

12
索引扩展的斐波那契数
您可能听说过斐波那契数。您知道,以开头的整数序列,1, 1然后每个新数字都是后两个数字的和? 1 1 2 3 5 8 13... 等等。关于斐波那契数的挑战在这里很普遍。但是谁说斐波那契数必须以1, 1?开头呢?他们为什么不能开始0, 1呢?好吧,让我们重新定义它们以0开始: 0 1 1 2 3 5 8 13... 但是...我们也不必停在那里!如果我们可以将最后两个数字相加以获得下一个数字,那么我们也可以从第二个数字中减去第一个数字,以添加一个新的数字。因此可以从以下开始1, 0: 1 0 1 1 2 3 5 8 13... 我们甚至可以得出负面结论: -1 1 0 1 1 2 3 5 8 13... 这个系列也永远持续下去。我认为有趣的是,它最终反映了正常的斐波纳契数,而其他所有数均变为负数: 13 -8 5 -3 2 -1 1 …

12
像蛇一样猛击
想法 我们之前已经完成了矩阵螺旋旋转,完整旋转甚至对角旋转,但据我所知,还没有蛇旋转! 什么是蛇旋转? 想象一下矩阵的行来回蛇行,它们之间的分隔线就像长队列的分隔线一样: +--------------+ 1 2 3 4 5| +------------ | |10 9 8 7 6| | +-----------+ |11 12 13 14 15| +------------ | 20 19 18 17 16| +--------------+ 现在,假设将这些项目旋转2。每个项目都会前进,就像人们在一条直线上移动一样,最后的项目会溢出并回到起点: +--------------+ --> 19 20 1 2 3| +------------ | | 8 7 6 5 4| | +-----------+ …

30
从数组创建块
您的任务是编写一个给定数组和数字的程序,您需要将数组拆分为大小为number的块。 规则 您的程序将收到一个数组A以及一个正整数n。然后n,如果该字符串的长度不能被n结尾处的剩余数整除,则应将数组拆分为一定长度的块,应将其视为自己的块。 如果n大于array的长度A,则需要返回array A,例如:如果n = 4和array A = [1,2,3],则应返回[1,2,3] 该数组可以包含任何类型,而不是数字。 您不应从左到右更改任何项目的顺序(或方向)。例如if n = 2和A= [1,2,3]。任何结果而不是[[1,2],[3]]无效的。 测试用例 n A Output 2 [1,2,3,4,5,6] [[1,2],[3,4],[5,6]] 3 [1,2,3,4,5,6] [[1,2,3],[4,5,6]] 4 [1,2,3,4,5,6] [[1,2,3,4],[5,6]] 这是代码高尔夫,因此每种语言的最短字节将成为赢家。

23
学校搬出(第一天)
挑战经我的大学代码挑战竞赛许可 多年来,我学校的学生人数一直稳定增长。首先,教室增加了学生的数量,但随后有必要为一些团体转换一些空间以便在那里上课,例如健身房看台,或最后一道课程,直到扫帚室。 去年,学术机构获得了建造新建筑并开始工程的预算。终于,他们完成了,新建筑物已经可以使用了,所以我们可以搬家了(旧建筑物将被修复,并将用于其他功能),但是在整个过程中它已经使我们半途而废。导演想知道是否可以在不拆分或不加入小组的情况下搬家,或者某些学生必须更换小组。 挑战 给定当前组和新教室的学生数量(容量),如果可以为每个当前组分配一个具有足够容量的不同教室,则输出真实值,否则输出假值。 测试用例 Input: groups of students => [10, 20, 30], classrooms capacity => [31, 12, 20] Output: True Input: groups of students => [10, 20, 30], classrooms capacity => [100, 200] Output: False Input: groups of students => [20, 10, 30], classrooms capacity => [20, 20, …

23
指针跳
假设我们有一个长度为n的数组psps\texttt{ps},其中的指针指向该数组中的某个位置:“ 指针跳跃 ”过程将把每个指针都设置为其指向的指针所指向的位置。nnn 出于此挑战的目的,指针是数组元素的(从零开始)索引,这意味着数组中的每个元素都将大于或等于000且小于nnn。使用此表示法,可以将过程表述为: for i = 0..(n-1) { ps[i] = ps[ps[i]] } 这意味着(针对此挑战),指针将按顺序进行就地更新(即,先降低索引)。 例 让我们来看一个例子,ps = [2,1,4,1,3,2]ps = [2,1,4,1,3,2]\texttt{ps = [2,1,4,1,3,2]}: i = 0:the element at position ps[0] = 2 points to 4→ps = [4,1,4,1,3,2]i = 1:the element at position ps[1] = 1 points to 1→ps = [4,1,4,1,3,2]i = …

14
主要收容编号(高尔夫球版)
这是序列A054261。 第ñnn个素数包含数是包含前素数作为子串的最小数。例如,数字是最低的数字,其中包含前3个素数作为子字符串,使其成为第3个素数包含数。ñnn235235235 这是微不足道弄清楚前四个遏制素数是,,和,但随后变得更有趣。由于下一个素数是11,所以下一个素数包含数不是,而是因为它被定义为具有该属性的最小数。222232323235235235235723572357235711235711235711112357112357112357 但是,当您超过11时,真正的挑战就来了。下一个主要收容编号为。请注意,在此数字中,子字符串和 是重叠的。该数字也与数字重叠。1132571132571132571113313 很容易证明此序列在增加,因为下一个数字需要满足该数字之前的所有条件,并且还要有一个子字符串。但是,该序列并不严格增加,如n=10和结果所示n=11。 输入项 一个整数n>0(我想您也可以将它的索引设为0,然后设为n>=0) 输出量 无论是n个素数遏制,或包含第一清单n素遏制号码。 到目前为止,我发现的数字是: 1 => 2 2 => 23 3 => 235 4 => 2357 5 => 112357 6 => 113257 7 => 1131725 8 => 113171925 9 => 1131719235 10 => 113171923295 11 => 113171923295 12 => 1131719237295 请注意,n = 10和n …

15
经典VCS ASCII Adventure
长大后,我的第一个主机游戏系统是Atari 2600,我将永远爱上我小时候喜欢的一些游戏。许多图形仍然令人难忘,甚至具有标志性。 事实证明,这些子画面是非常简单的位图,宽度为8个像素,高度可变,其中二进制表示形式是像素的排列。 例如,十六进制字节0x18、0x24、0x18将绘制一个粗略的圆圈,如下所示: 0x18: 00011000 0x24: 00100100 0x18: 00011000 由于8像素宽可创建相当小的图形(即使按Atari 2600标准),通常也可以将高度,宽度或两者都翻一番或翻两番,以创建同一图像的更大(虽然更块状和失真)的版本。对于玩家精灵和运动场,它们通常也会垂直或水平翻转。游戏《战斗》就是一个很好的例子。 挑战在于,编写代码以将这些精灵显示为ASCII形式的“图形”,包括能够垂直,水平或同时拉伸或翻转它们的能力。它必须采用完整程序或可调用函数的形式。 输入: 字节数组,每个字节代表该行的水平位。 水平和垂直每个方向的非零整数值,代表该尺寸的比例因子。 负值表示尺寸也应沿其轴翻转。 输出: ASCII表示为STDOUT或换行符分隔的字符串,对于黑色(0)像素使用空格字符,对于白色(1)像素使用您选择的任何可打印的非空格字符。 测试数据: bmp1 = [ 0x06, 0x0F, 0xF3, 0xFE, 0x0E, 0x04, 0x04, 0x1E, 0x3F, 0x7F, 0xE3, 0xC3, 0xC3, 0xC7, 0xFF, 0x3C, 0x08, 0x8F, 0xE1, 0x3F ] bmp2 = [ 0x07, 0xFD, 0xA7 …

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.