Questions tagged «code-golf»

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

30
打印希腊字母!
显然,您必须打印希腊字母。但是我认为我会使其更加有趣,所以有一个转折:当您的程序运行时带有参数(任何东西)时,它应该以小写形式输出希腊字母。 信息 希腊字母(大写): ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ 希腊字母(小写): αβγδεζηθικλμνξοπρστυφχψω 规则/要求 每个提交必须是完整程序。 不允许使用内置字体来打印希腊字母 适用标准漏洞 您必须完全打印显示的内容。 计分 程序根据字节计分。如果您使用的字符集与UTF-8不同,请指定。尝试从所有人中获取最少的字节,这是代码高尔夫! 测试用例 ./program ==> ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ ./program 1 ==> αβγδεζηθικλμνξοπρστυφχψω ./program 'lower' ==> αβγδεζηθικλμνξοπρστυφχψω ./program 123897883421 ==> αβγδεζηθικλμνξοπρστυφχψω ./program "" ==> αβγδεζηθικλμνξοπρστυφχψω greek(); ==> ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ greek("blah"); ==> αβγδεζηθικλμνξοπρστυφχψω greek(123); ==> αβγδεζηθικλμνξοπρστυφχψω 意见书 为了确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,可以将旧分数保留在标题中,方法是将它们打掉。例如: …

1
展开音乐跳跃
在连续记号和初音岛是两个非常常用的音乐术语。它们分别表示“ 从符号 ”(𝄋)和“ 从头开始 ”。 另外还有的想法尾声(𝄌),这是一首乐曲的最后一刻。这是作品“主要部分”之后的内容。 例如,DS al coda(Dal Segno al coda)的意思是“去找segno,玩直到被告知要去到coda,然后跳到那里。” 描述 在此挑战中,您的工作是接受由可能包含或不包含Dal Segno和Da Capo的任意数量的音符组成的输入,并输出带有上述“未展开”的相同乐曲,以便使重复音节逐字扩展。 输入值 您的代码应将一系列音符或信号(此处定义为除音符)作为输入,并在一个字符串中用空格分隔。 调为任意的a,b,c,d,e,f,或g,具有可选的#或b附加的(对于这一挑战的目的,没有节奏)。 一个C(大写C)表示结尾标记。总会有零个或两个尾声标记;第一个尾声标记表示从何处跳转,第二个尾声表示从何处跳转。 一个S(大写S)表示预兆报标记。签名标记始终为零或一个。 一个F(大写F)表示精细标记。这“覆盖”了作品的结尾,更多内容在下面。始终会有零个或一个精细的标记。 以下任何精确的文本字符串均表示: D.S. al fine:去SIGNO和玩到一块的任何一个结束或精细标记(如果存在的话)。 D.S. al coda:去SIGNO,玩,直到结尾,然后跳转到第二个结尾标记和发挥,直至曲终。 D.C. al fine:从头开始,播放到结尾或精细标记。 D.C. al coda:去年初,玩,直到结尾,然后跳转到第二个结尾标记和发挥,直至曲终。 每段中每个字符串始终始终为零,最多为一个。一块中永远不会有多个al fine或多个al coda。 输出量 您的代码应以类似的字符串格式输出:注释列表,以空格分隔。 您可能总是假设输出最终将是一个或多个字符长。 测试用例 进:a# bb c b a 出:a# bb c …
11 code-golf  music 

4
双缝奎因
目的: 对两个程序进行编码,每个程序输出两个源代码,每个源代码都按字符隔行扫描,例如拉链,双缝Quine。双缝Quine的输出从第一个程序的源代码中的第一个字符开始。如果其中一个程序的源代码的长度短于另一个程序的源代码,则输出的其余部分必须用其余较长的源代码填充。 规则: 您可以对两种程序使用任何编程语言,而不必对两种程序使用相同的编程语言。 您的程序不应从文件,文件名,网络,其他程序或其他任何内容中获取任何输入。 强制标准: 有一个陷阱,在输出中的某个位置QUINE必须存在不间断的大写字母单词。 您需要说明正在使用的两种编程语言。如果两种语言都使用相同的编程语言,则只需声明一种编程语言。 这两个程序都应该能够独立于另一个程序执行或解释。 例: 拥有程序一的示例源代码: "QIE" 拥有程序2的示例源代码: "UN" 然后,两个程序的有效双缝Quine输出必须为: ""QUINE"" 这是代码高尔夫球,将两个源代码的长度加起来,并且显然将每个程序输出的长度加起来,最少的字节也很成功!
11 code-golf  quine 

5
拓扑总数
对于给定的DAG(有向无环图),其每个拓扑排序都是所有顶点的排列,其中,对于DAG 中的每个边(u,v),在排列中,u出现在v之前。 您的任务是计算给定DAG的拓扑种类总数。 规则 您可以使用任何格式来表示图,例如邻接矩阵,邻接列表或边列表,只要您不对编码进行有用的计算。如果有用,您也可以在输入中包含诸如顶点数或顶点列表之类的东西。 您可以假设输入中的图形始终是DAG(没有任何循环)。 理论上,您的程序应该可以进行任何输入。但是,如果它溢出您语言中的基本整数类型,它可能会失败。 顶点名称可以是任何类型的任何连续值。例如:以0或1开头的数字。(当然,仅当您不使用该数字存储代码时)。 这是代码高尔夫球。最短的代码获胜。 例 这是相同的输入,但格式不同。您的程序不必全部接受。顶点始终是从0开始的整数。 Adjacency list: [ [1 2 3 5] [2 4] [] [2] [] [3] ] Adjacency matrix: [ [0 1 1 1 0 1] [0 0 1 0 1 0] [0 0 0 0 0 0] [0 0 1 0 …

4
Pigpen密码加密
Pigpen密码加密 您的任务很简单:编写一个程序来接收文本作为输入并在Pigpen Cipher中输出文本的ASCII表示。 输入值 仅ASCII(无Unicode)字符。您必须至少能够处理16384个字符和256行。 输出量 将所有不是换行符的字符替换为换行符ABCDEFGHIJKLMNOPQRSTUVWXYZ或abcdefghijklmnopqrstuvwxyz用空格替换。 不区分大小写,将每个字母替换为其加密形式(请参阅下一节),在每行之后的三行中的每行后面插入一个空格。每个编码的字符都是3 * 3的ASCII艺术字块。用3 * 3的空格块替换空格。 所有字符都应该在同一三行上(将这三行称为一个猪行),除非有新行开始新的猪行。在猪皮线之间保留法线为空白。 密码 | | | | .| |.| |. --+ for J +-+ for K +-- for L --+ +-+ +-- .| |.| |. --+ for M +-+ for N +-- for O --+ +-+ +-- .| |.| …

3
编写Clem解释器
Clem是一种基于堆栈的最小编程语言,具有一流的功能。您的目标是为Clem语言编写一个解释器。它应正确执行参考实现中包含的所有示例,可从此处获得。 像往常一样,存在标准漏洞。 按字节数最小的条目获胜。 克莱姆语言 Clem是具有一流功能的基于堆栈的编程语言。学习Clem的最好方法是clem不带参数地运行解释器。它将以交互模式启动,使您可以使用可用的命令进行播放。要运行示例程序,请键入clem example.clmwhere example是程序的名称。这个简短的教程应该足以让您入门。 主要有两类功能。原子功能和复合功能。复合函数是由其他复合函数和原子函数组成的列表。请注意,复合函数不能包含自身。 原子功能 第一类原子函数是常数。甲恒定仅仅是一个整数值。例如-10。当解释器遇到常量时,它将其推入堆栈。clem现在运行。键入-10在提示符下。你应该看到 > -10 001: (-10) > 该值001描述了函数在堆栈中的位置,并且(-10) 是您刚刚输入的常数。现在+11,在提示符下输入。你应该看到 > +11 002: (-10) 001: (11) > 请注意,它(-10)已移动到堆栈中的第二个位置,(11)现在占据了第一个位置。这就是堆栈的本质!您会注意到这-也是减量命令。无论何时-或+在数字之前,它们表示该数字的符号,而不是相应的命令。所有其他原子函数都是命令。共有14个: @ Rotate the top three functions on the stack # Pop the function on top of the stack and push it twice $ Swap the …

5
命名扑克手-7张牌
挑战: 在这个问题中:命名您必须拿出五张牌的扑克手并识别它。这个问题很相似,有两个不同之处: 首先,输出将全部为小写。这样您就可以进行更多的高尔夫球运动,因为您不必担心flush和的大小写。straight high card one pair two pair three of a kind straight flush full house four of a kind straight flush royal flush 其次,随着德州扑克和7张牌梭哈的流行,我们在代码高尔夫这里应该能够得分7张扑克牌,对吗?当得分为7张牌时,请使用5张最好的牌,而忽略不需要的2张。 参考: 扑克手名单:http : //en.wikipedia.org/wiki/List_of_poker_hands 输入(直接从上一个线程中提取) 来自stdin或命令行参数的7 张卡片。卡片是表格上的两个字母的字符串RS,其中R是等级,S是西装。该队伍是2- 9(号卡), T(十个),J杰克(Jack),(Q皇后), K(王),A(ACE)。该套装是S,D,H,C为黑桃,方块,分别心和俱乐部。 卡示例 5H - five of hearts TS - ten of spades AD - ace …
11 code-golf  game 

18
创建死锁的最短代码
编写最短的代码以创建死锁。代码执行必须停止,所以这不起作用: public class DeadlockFail extends Thread{ //Java code public static void main(String[]a){ Thread t = new DeadlockFail(); t.start(); t.join(); } //this part is an infinite loop; continues running the loop. public void run(){while(true){}} } 它并不需要是肯定的代码进入僵局,就几乎可以肯定(如果你运行了无限的时间,它会死锁)。

6
有理数功能
创建一个采用自然数(从0开始,包括0)的函数,并返回一对正整数,分别是分子和分母。使用对角线遍历。必须跳过以前计算的数字。(您可以记住跳过的值集) 图解: 红色是跳过的值 值: f(0)= 1、1 f(1)= 2,1 f(2)= 1、2 f(3)= 1、3 f(4)= 3,1(注意跳过) f(5)= 4,1 f(6)= 3,2 f(7)= 2,3 f(8)= 1、4 f(9)= 1、5 f(10)= 5、1(请注意跳过) 您可以使用Rational数据结构及其操作(如果存在)。最短的代码获胜。

30
前n个斐波纳契数列元素
有一个众所周知的问题,在这里,要求在短时间内(至少字符)斐波那契序列发生器。 我想知道是否有人可以在非常短的空间内生成斐波那契数列的前N个元素。我正在尝试用python来做,但是我对任何语言的简短回答都感兴趣。函数F(N)生成序列的前N个元素,或者将它们作为函数的返回值返回或打印出来。 有趣的是,似乎代码高尔夫球的答案以开头1 1 2,而不是0 1 1 2。这是代码高尔夫球规范还是通用编程规范?(维基百科说斐波那契数列从零开始。)。 Python示例(前5个元素): def f(i,j,n): if n>0: print i; f(j,i+j,n-1) f(1,1,5)

7
实施Shamir的秘密共享重建
Shamir的秘密共享方案是将秘密分为几个重建秘密所需的保护秘密的简单方法。 您的任务是在prime定义的有限域上实施Shamir的秘密共享重建1928049029。如果您对这意味着什么有任何疑问,请在Wikipedia中询问或查看“有限域和有限域算术”(下面的更多资源)。 输入值 输入是使用stdin完成的。首先是一个整数k,然后是k行。这些行中的每一行都包含一对x y代表秘密的整数。换句话说f(x) = y,在用于构造机密的原始多项式中。 给出的秘密数量始终足以构造相应的秘密。 输出量 输出以输出重新构造的秘密。 例子 输入: 5 1 564797566 2 804114535 4 1354242660 6 1818201132 7 503769263 输出: 1234 输入: 7 1 819016192 2 1888749673 3 1737609270 4 365594983 5 1628804870 6 1671140873 7 492602992 输出: 456457856 资源资源 维基百科文章 纸 有限域来源:维基百科 有限域算术来源:维基百科 拉格朗日多项式资料来源:维基百科 有限域算术一章

14
一个月中工作日的百分比
给定一年零一个月,找出该月工作日的百分比。工作日为星期一至星期五,与节假日或其他特殊情况无关。使用公历。 输入值 ISO 8601格式的年月(YYYY-MM)。年份始终具有四个数字,月份始终具有两个数字。给定的年份不会早于1582年。 输出量 输出是给定月份的工作日百分比(根据上述定义),四舍五入为整数。没有百分号或小数位。 样品1 Input Output 2010-05 68 样品2 Input Output 2010-06 73 样品3 Input Output 1920-10 68 样品4 Input Output 2817-12 68 一个星期过去了,答案已经被接受。出于好奇,我们在比赛中收到的意见书的大小: 129 – Z Shell 174 – VB.NET 222 – C 233 – C 300 – C 以及我们自己的(未排名)解决方案: 75 – PowerShell 93 – Ruby …
11 code-golf  date 

7
具有奇特秘密力量的阵列战斗
这是一个相对简单的二维数组挑战。 想象一下一个有625英尺长士兵的战场。您指挥奇数部队,但不幸的是,偶数部队的力量使您不堪重负。值得庆幸的是,您的士兵拥有秘密力量:如果每个奇兵和周围同伴的力量可以被秘密力量数字整除,那么他们将发动最终的进攻并取得胜利!您必须尊重每位胜利的士兵。 规则 给定一个25 x 25的整数数组,其中每个元素都包含其x和y位置加1的乘积,返回满足以下条件的每个“胜利”奇数元素的坐标: 元素值及其相邻奇数元素(上,下,左和右)的总和可被输入(秘密幂数)整除。它必须在所有四个侧面上与其相邻且不能在边缘上。 提交可以是需要单个输入的功能或完整程序。输出可以是任何顺序。 我们的25 x 25阵列(战场)如下所示: 1, 1, 1, 1,... 1, 2, 3, 4,... 1, 3, 5, 7,... 1, 4, 7, 10,... etc. 例 这是一个3 x 3的示例: 43, 57, 71 46, 61, 76 49, 65, 81 为了确定某个元素(居中的61)是否获胜,我们将其值与相邻的奇数元素相加。 61 + 57 + 65 = 183 如果总计可被输入整除,则打印元素的x和y位置。如果我们的输入为3,则因为183可被3整除,所以将打印“ …

2
贝壳球高尔夫
此任务是在glob扩展后将最短路径输出到文件。 什么是贝壳球?在大多数外壳中,您可以*在路径中使用字符来表示该位置上的任何字符。例如,如果目录foo包含bar baz和asdf,foo/b*则将扩展为foo/bar foo/baz。 现在,假设当前目录包含一个名为的文件ihavealongname,仅此而已。如果要引用此文件,可以键入*,它将仅表示一个文件,而不是输入全名。 如果目录中还包含一个名为的文件ialsohavealongname,则无法执行*,因为它将匹配这两个文件。我至少必须要做ih*。 该*模式还可以匹配我要查找的文件上方的目录。如果只有两个目录foo和bar,但foo只包含一个文件baz,并bar包含一个文件asdf,我可以匹配foo/baz用*/baz。或者,更简洁地说*/b*。如果bar是空的,*/*将起作用。 您的任务:给定表示“当前目录”的路径字符串数组和单个目标路径,输出可能的最短字符串,该字符串在扩展* s后将仅扩展到该目标路径。 目标路径可以当作它自己的字符串,路径数组的索引,传入的路径数组的第一项或其他非硬编码的便捷方式。如果不确定,请在评论中提问。 保证目标路径存在于“当前目录”中。 您可以假设所有路径仅包含字母数字ASCII(和/s)。您可以将扎根(以开头/)或相对(不以开头/)的路径作为输入路径。 如果存在多个同样短的可能性,请返回其中的任意一个或全部。 这是 代码高尔夫球,最少的字节获胜! 测试用例,感谢Kevin Cruijssen。

7
七巧板奎因斯(Robbers'Thread)
这是一个 警察和强盗挑战警察的线索可以在这里找到 作为强盗,您要面对的挑战是从警察的线程中获取输出,并找到输出的字谜,当程序运行该字谜时,会提供原始输出。 获胜者将是在这个问题上最有效的人。 规则 您可能无法破解提供的程序标记为安全的答案。 如果警察提供了您想要的解决方案所用的语言,则您必须使用该特定语言来破解它,如果他们选择不这样做,则您可能会以任何竞争性语言来破解它。 适用Quines的标准规则。 裂缝一定不是完美的奎因。也就是说,他们不得输出其确切来源,而应重新排序(该顺序由警察提供)。

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.