Questions tagged «code-golf»

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

15
展开和收缩
以正整数作为输入。从开始,并反复将增加10的最大整数幂,以使和。kkkn:=1n:=1n := 1nnniiii≤ni≤ni \le ni+n≤ki+n≤ki + n \le k 重复直到并返回所有中间值的列表,包括初始和最终。n=kn=kn = knnn111kkk 在这一过程中,增长最初将受到前者的不平等的限制,然后才受到后者的限制。增长将采取初始“扩张”时期的形式,在此期间,会以更大的幂增加,随后是“契约”时期,在此期间,会以越来越小的幂增加以“放大”在正确的数字上。nnnnnn 测试用例 1 => [1] 10 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 321 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, …

5
俄罗斯方块!最终身高(第3天)
来自我的大学代码挑战赛的挑战 这实际上是第0天,但昨天的挑战太容易了,可能是这里另一个问题的重复。 俄罗斯方块是一款在80年代流行的视频游戏。它包括将一系列不同形状的零件放置在板上,以便它们以最紧凑的方式放置。 在这个问题中,我们将假设一系列落下的碎片,每个碎片在某个位置和某个方向都无法改变。棋子掉落时会堆积起来,并且不会消除整行(就像在原始游戏中一样)。目的是确定所有零件掉落后板的每一列的最终高度。 共有7个不同的片段,如图所示: 挑战 给定一个零件清单,在所有零件落下后输出木板上所有列的高度 一块包含三个数字:I,R和P。第一个数字I是块的标识符(1到7之间的数字,与图中的顺序相同)。第二个数字R是棋子的旋转。它可以取值0、90、180或270,并表示零件沿逆时针方向旋转的角度。第三个数字P表示棋子的位置。表示作品左侧的一列(可以是1或0索引。请指定)。 示例和测试用例(1个索引) 给定 [[1, 0, 1], [4, 0, 1], [5, 90, 4]] 输出量 [3, 3, 1, 3, 2] 给定 [[6, 270, 4], [1, 180, 5], [1, 90, 6], [7, 0, 4]] 输出量 [0, 0, 0, 9, 9, 8, 3, 3] 给定[[3,0,1],[3,180,3]]输出[1,1,4,4,4] 给定[[2,180,1],[2,0,3]]输出[2,2,4,3,3] 笔记 …
19 code-golf  tetris 

13
Dirichlet卷积
该狄利克雷卷积是一种特殊的卷积出现在数论中一个非常有用的工具。它对一组算术函数进行运算。 挑战 给定两个算术函数(即函数),计算Dirichlet卷积如下定义。F,g ^f,gf,gF,g ^:N → Rf,g:N→Rf,g: \mathbb N \to \mathbb R(f ∗ g ):N → R (f* 克):N → R(f∗g):N→R(f * g): \mathbb N \to \mathbb R 细节 我们使用约定。0 ∉ Ñ = { 1 ,2 ,3 ,... }0∉N={1,2,3,…} 0 \notin \mathbb N = \{1,2,3,\ldots \} 两个算术函数的Dirichlet卷积再次是算术函数,它的定义为(两个和都是等价的。表达式表示除以,因此求和在的自然除数上 。类似地,我们可以用F* 克f∗gf*gF,g ^f,gf,g(f* …

25
最高骰子
挑战: 这是序列的前100个项目: 6,5,4,3,2,1,66,65,64,63,62,61,56,55,54,53,52,51,46,45,44,43,42,41,36,35,34,33,32,31,26,25,24,23,22,21,16,15,14,13,12,11,666,665,664,663,662,661,656,655,654,653,652,651,646,645,644,643,642,641,636,635,634,633,632,631,626,625,624,623,622,621,616,615,614,613,612,611,566,565,564,563,562,561,556,555,554,553,552,551,546,545,544,543,542,541,536,535,534,533,... 这个序列是如何形成的?我们首先获得范围内的数字[6, 1](单个芯片从最高到最低的所有可能值)。然后,我们得到数字[66..61, 56..51, 46..41, 36..31, 26..21, 16..11](从最高到最低的两个骰子的所有可能的conconted值)。等等, 这与OEIS序列A057436有关:仅包含数字1到6,但是所有具有相等位数的数字在该序列中都向后排序。 面临的挑战是按照上述顺序为您的功能/程序选择以下三个选项之一: 输入并输出此序列的第个值,该值可以为0索引或1索引。nnnnnn 输入并输出此序列的前或值。ñnnñnnn + 1n+1n+1 无限期地输出序列中的值。 当然,可以使用任何合理的输出格式。可以是字符串/整数/小数/等。可以是(无限)列表/数组/流/等;可以用空格/逗号/换行符/其他定界符输出到STDOUT;等等。请在回答中说明您使用的I / O和选项! 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 如果您选择选项1,这里是一些较大的测试用例: n 0-indexed output 1-indexed output 500 5624 5625 750 4526 4531 1000 3432 3433 9329 11111 11112 9330 …

3
计算周期性自我描述列表
循环自我描述列表 如果满足以下条件,则正整数列表LLL周期性地自我描述。 LLL是非空的。 LLL的第一个和最后一个元素不同。 如果将LLL分为相等元素的游程,则每个游程的元素等于下一个游程的长度,最后一个游程的元素等于第一游程的长度。 例如,考虑L=[1,1,1,2,3,3,1,1,1,3]L=[1,1,1,2,3,3,1,1,1,3]L = [1,1,1,2,3,3,1,1,1,3]。它是非空的,并且第一个和最后一个元素是不同的。当我们掰成运行,我们得到[[1,1,1],[2],[3,3],[1,1,1],[3]][[1,1,1],[2],[3,3],[1,1,1],[3]][[1,1,1],[2],[3,3],[1,1,1],[3]]。 第一次运行为111 s,下一次运行[2][2][2]的长度为111。 第二次运行是一个运行222 s,并且下一个游程的长度,[3,3][3,3][3,3],是222。 第三次运行是一个运行333 s,并且下一个游程的长度,[1,1,1][1,1,1][1,1,1],是333。 第四轮为111 s,下一轮[3][3][3]的长度为111。 最后,最后一次运行的是一个运行333秒,所述第一游程的长度,[1,1,1][1,1,1][1,1,1],是333。 这意味着LLL是循环自描述列表。 对于非例如,列表[3,2,2,2,1,4,1,1,1][3,2,2,2,1,4,1,1,1][3,2,2,2,1,4,1,1,1]不是周期性自描述的,由于运行222 s的后面长度的运行111。列表[2,2,4,4,3,3,3,3][2,2,4,4,3,3,3,3][2,2,4,4,3,3,3,3]也没有周期性自描述的,自上次运行的是一个运行333 S,但在第一次运行具有长度222。 任务 在这种挑战,你的输入是一个整数n≥1n≥1n \geq 1。您的输出应为总和等于nnn的循环自描述列表的数量。例如,n=8n=8n = 8应导致444中,由于周期性自描述列表,其总和为888是[1,1,1,1,4][1,1,1,1,4][1,1,1,1,4],[1,1,2,1,1,2][1,1,2,1,1,2][1,1,2,1,1,2],[2,1,1,2,1,1][2,1,1,2,1,1][2,1,1,2,1,1]和[4,1,1,1,1][4,1,1,1,1][4,1,1,1,1]。最低字节数获胜,并且适用其他标准代码高尔夫球规则。 这是输入111到505050的正确输出值: 1 -> 0 2 -> 0 3 -> 0 4 -> 2 5 -> 0 6 -> 2 7 -> 0 8 …

13
Trifid Cipher(无关键字)
介绍: 我曾经在小时候编译过的文档中存储了许多不同的密码,我选择了一些我认为最适合挑战的密码(不太琐碎,也不太难),并将它们转变为挑战。它们中的大多数仍在沙箱中,我不确定是否要全部发布还是仅发布其中几个。这是第二个(计算机密码是我发布的第一个)。 对于Trifid Cipher(不使用关键字),字母(和附加的通配符)被分为三个3×3表: table 1: table 2: table 3: |1 2 3 |1 2 3 |1 2 3 -+----- -+----- -+----- 1|a b c 1|j k l 1|s t u 2|d e f 2|m n o 2|v w x 3|g h i 3|p q r 3|y z 我们要加密的文本是第一个字符,每个字符编码为表行-列号。例如,文本this is …

4
Pentomino 6x10解决方案标准化器
正如您现在最可能看到的那样,在6x10的网格中有2339种解决五味子拼图的方法。12种戊糖胺有不同的标记方案,下图显示了其中的两种: 图片来源:维基百科 出于当前任务的目的,我们将说归一化的戊糖胺溶液是使用第二种标记方案(康韦)的溶液。 例: O O O O O S S S Z Z P P R R S S W W Z V P P P R R W W Z Z V U U X R T W Y V V V U X X X T Y …

27
奇怪的加法
挑战 计算两个自然数的奇数和(也称为月球加法): 给定A=... a2 a1 a0和B=... b2 b1 b0两个以十进制为基础的自然数,根据最大运算将奇数和定义为: A+B=... max(a2,b2) max(a1,b1) max(a0,b0) ... a2 a1 a0 + ... b2 b1 b0 ---------------------------------------- ... max(a2,b2) max(a1,b1) max(a0,b0) 输入项 两个自然数 允许以下所有内容: 零填充字符串(相同长度) 左空格填充的字符串 右空格填充的字符串 两个填充字符串的数组 2D空格填充的char数组 输出量 自然数 例 1999+2018-->2999 17210+701-->17711 32+17-->37 308+250-->358 308+25-->328 规则 输入和输出可以任何方便的格式给出(为您的语言/解决方案选择最合适的格式)。 无需处理负值或无效输入 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

7
白俄罗斯rushnyk
我们已经遇到了许多国旗挑战:AU CH FI FR GB GB IS KR NP US ...这是另一个更先进的挑战 : 返回或打印白俄罗斯国旗上的装饰图案,作为红色和白色两个不同值的矩阵。 如果您的语言不支持矩阵,请使用列表列表或最接近的列表。所有面都允许有多余的空格。矩阵可以转置。元素可以具有一致的分隔符,行也可以具有分隔符,例如输出可以是JSON。您必须使用2012版本的装饰图案,而不是1951或1995版本。这是代码高尔夫球,因此每种语言的答案最短。 样本输出: ....###....#....###.... #..#####...#...#####..# ..###.###.....###.###.. .###...###...###...###. ###..#..###.###..#..### .###...###...###...###. ..###.###.....###.###.. #..#####...#...#####..# ....###....#....###.... ..#..#..#.....#..#..#.. .###...###...###...###. ##.##.##.##.##.##.##.## .###...###...###...###. ..#..#..#.....#..#..#.. ....###....#....###.... #..#####...#...#####..# ..#######.....#######.. .#########...#########. ####################### ####...#########...#### .#####..#######..#####. ..###....#####....###.. #..#....#######....#..# .......####.####....... #.....####...####.....# ##...####..#..####...## ###.####.......####.### .######..#...#..######. ..####...##.##...####.. ...###....###....###... ....##.#...#...#.##.... ...###....###....###... ..####...##.##...####.. .######..#...#..######. ###.####.......####.### …

12
矩阵是正定的吗?
介绍 今天我们要照顾第一年线性代数学生的祸根:矩阵定性!显然这还没有挑战,所以我们开始: 输入项 任何方便格式的n×nn×nn\times n 对称矩阵AAA(当然,您也可以只取矩阵的上部或下部) 可选:矩阵的大小nnn 该怎么办? 挑战很简单:给定一个实值矩阵n×nn×nn\times n矩阵,如果输出真值,则输出真值,否则输出假值,从而确定其是否为正定值。 您可能会假定内置程序能够真正正确地工作,因此不必考虑数值问题,如果“可证明”的策略/代码产生正确的结果,则可能导致错误的行为。 谁赢? 这是代码高尔夫球,因此以字节(每个语言)为单位的最短代码为准! 反正矩阵是什么? 当对称矩阵为正定时,显然有6个等价公式。我将重现这三个简单的文章,并为更复杂的文章引用Wikipedia。 如果∀v∈Rn∖{0}:vTAv>0∀v∈Rn∖{0}:vTAv>0\forall v\in\mathbb R^n\setminus \{0\}: v^T Av>0则AAA是正定的。可以将其重新公式化为:如果对于每个非零向量vvv,vvv和AvAvAv的(标准)点积为正,则AAA为正定。 让λii∈{1,…,n}λii∈{1,…,n}\lambda_i\quad i\in\{1,\ldots,n\}是特征值的AAA,如果现在∀i∈{1,…,n}:λi>0∀i∈{1,…,n}:λi>0\forall i\in\{1,\ldots,n\}:\lambda_i>0(这是所有本征值是正的),然后AAA是正定的。如果您不知道特征值是什么,我建议您使用自己喜欢的搜索引擎进行查找,因为本文中的解释(以及所需的计算策略)太长了。 如果乔列斯基分解的AAA存在,即存在一个下三角矩阵LLL使得LLT=ALLT=ALL^T=A然后AAA是正定的。请注意,如果在任何时候由于负参数导致算法期间根的计算失败,则这等效于提早返回“ false”。 例子 为真实输出 ⎛⎝⎜100010001⎞⎠⎟(100010001)\begin{pmatrix}1&0&0\\0&1&0\\0&0&1\end{pmatrix} ⎛⎝⎜⎜⎜1000020000300004⎞⎠⎟⎟⎟(1000020000300004)\begin{pmatrix}1&0&0&0\\0&2&0&0\\0&0&3&0\\0&0&0&4\end{pmatrix} ⎛⎝⎜52− 121个− 1− 1− 13⎞⎠⎟(52−121−1−1−13)\begin{pmatrix}5&2&-1\\2&1&-1\\-1&-1&3\end{pmatrix} ⎛⎝⎜1个− 22− 2502030⎞⎠⎟(1−22−2502030)\begin{pmatrix}1&-2&2\\-2&5&0\\2&0&30\end{pmatrix} (7.152.452.459.37)(7.152.452.459.37)\begin{pmatrix}7.15&2.45\\2.45&9.37\end{pmatrix} 虚假输出 (至少一个特征值是0 /正半定) ⎛⎝⎜3− 22− 240202⎞⎠⎟(3−22−240202)\begin{pmatrix}3&-2&2\\-2&4&0\\2&0&2\end{pmatrix} (特征值具有不同的符号/不确定) ⎛⎝⎜1个000− 10001个⎞⎠⎟(1000−10001)\begin{pmatrix}1&0&0\\0&-1&0\\0&0&1\end{pmatrix} (所有特征值均小于0 /负定数) …

10
重复此GCD操作
问题A3来自 2008年Putnam竞赛的说: 开始一个有限序列a1,a2,…,ana1,a2,…,aña_1, a_2, \dots, a_n正整数。如果可能的话,选择两个指数j&lt;kj&lt;kj < k使得一种Ĵ一种Ĵa_j不划分akaka_k,并更换ajaja_j和akaka_k通过gcd(aj,ak)gcd(aj,ak)\gcd(a_j, a_k)和LCM (aĴ,aķ)lcm(一种Ĵ,一种ķ)\text{lcm}(a_j, a_k), 分别。证明如果重复此过程,则它最终必须停止并且最终顺序不取决于所做的选择。 您在此挑战中的目标是将有限整数的正整数作为输入,并输出重复此过程直到无法进一步进行的结果。(也就是说,直到结果序列中的每个数字都除以其后的所有数字。)您无需解决Putnam问题。 这是代码高尔夫:每种编程语言中最短的解决方案胜出。 测试用例 [1, 2, 4, 8, 16, 32] =&gt; [1, 2, 4, 8, 16, 32] [120, 24, 6, 2, 1, 1] =&gt; [1, 1, 2, 6, 24, 120] [97, 41, 48, 12, 98, 68] =&gt; [1, 1, …

30
我发声的速度有多快?
介绍 我的汽车车速表被黑了!它没有显示我开车的速度,而是显示:“ Vroooom!” 请帮助我知道我要走多快。 挑战 接受一个字符串作为输入,并检查它是否与regex相匹配/^[Vv]ro*m!$/m。用英语表示字符串的任何行必须以大写字母或小写字母开头v,然后是小写字母r,然后是任意数量(包括零)的小写字母o,然后是确切的字符串m!。可能还有其他行,但是Vroom字符串必须在其自己的行上。 如果找到匹配项,则必须计算oVroom字符串中的数量并输出。但是,如果找不到匹配项,则应输出否则无法输出的任何默认值(例如-1或空字符串) 提醒事项 I / O采用任何合理的格式 禁止标准漏洞 提交内容可能是完整的程序或功能 输入保证只有1个Vroom字符串 计分 这是code-golf,因此以字节为单位的最短代码获胜。但是,我不会将任何答案标记为已接受。 测试用例 输入项 Vrom! 输出量 1 输入项 vrooooooom! 输出量 7 输入项 Hello, Vroom! 输出量 (none) 输入项 Foo bar boo baz Vrooom! hi 输出量 3 输入项 Vrm!ooo 输出量 (none) 输入项 PPCG puzzlers pie 输出量 (none) 输入项 …

3
Spoonerise单词…用芬兰语
这个挑战基于我在阿尔托大学(Aalto University)上的一门编程课程,并包含来自该课程的测试案例。该材料经许可使用。 两年半前,英语中的尖刺主义面临挑战。但是,在芬兰,勺子主义要复杂得多。 芬兰语中的语 在芬兰语中,元音为aeiouyäö,辅音为bcdfghjklmnpqrstvwxz。(å从技术上讲,这是芬兰语的一部分,但在此不予考虑。) 最基本的竖笛演奏只取每个单词的第一个元音以及它们前面的任何辅音,然后交换各部分: henri kontinen -&gt; konri hentinen tarja halonen -&gt; harja talonen frakki kontti -&gt; kokki frantti ovi kello -&gt; kevi ollo 长元音 有些单词包含两个相同的连续元音。在这种情况下,必须将元音对与另一个单词的第一个元音交换,缩短或延长元音以保持长度不变。 haamu kontti -&gt; koomu hantti kisko kaappi -&gt; kasko kiippi 对于两个不同的连续元音,这不适用于: hauva kontti -&gt; kouva hantti puoskari kontti -&gt; kooskari puntti 同一连续字母中的三个或三个以上不会出现在输入中。 …
19 code-golf  string 

11
插座-插头兼容性
带电子设备旅行总是很有趣,尤其是当您需要适配器充电时。您面临的挑战是通过检查给定的插头是否与给定的插座兼容来使旅行计划变得更加容易。 挑战 给定插头类型和插座类型,返回一个值,该值指示它们是否可以一起工作。 相容性表 Socket Accepted plugs | Plug Accepting Sockets A A | A A, B B A, B | B B C C | C C, D, E, F, H, J, K, L, N, O D C, D, E, F | D D E C, E, F | …

8
螺旋街区
如果我们采用自然数并将它们逆时针滚动成一个螺旋,那么我们将得到以下无限螺旋: ....--57--56 | 36--35--34--33--32--31--30 55 | | | 37 16--15--14--13--12 29 54 | | | | | 38 17 4---3---2 11 28 53 | | | | | | | 39 18 5 0---1 10 27 52 | | | | | | 40 19 6---7---8---9 26 51 | | …

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.