Questions tagged «code-golf»

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

23
漂亮的印刷多项式
介绍 人类是一个非凡的物种,但是有时我们很难理解,尤其是对于计算机。特别是,我们似乎喜欢用看似随意的规则以非常复杂的方式编写多项式。 使用这些规则,您可以编写出最短的程序来正确格式化多项式吗? 挑战 输入值 -1000到1000(含)之间的整数列表,代表多项式的系数,最后一个条目为x ^ 0(常数)的系数,第二个最后一个为x ^ 1的系数,依此类推。 输出量 以正确格式的人类数学表示形式表示此多项式的字符串。 规则: 仅当前导系数上的符号为负时才显示。 Right: -x^2+3 Wrong: +x^2+3 不打印系数为0的组件(所有系数均为0 *的特殊情况除外)。 Right: x^5-x^2+3 Wrong: x^5+0x^4+0x^3-x^2+0x+3 系数-1和+1必须不带1,除非它们是常数。 Right: x^5-x^2+1 Wrong: 1x^5-1x^2+1 仅在指数大于1时显示指数,并且仅在指数大于0时显示变量。 Right: 3x^3-7x^2+2x+1 Wrong: 3x^3-7x^2+2x^1+1x^0 *正确的情况:虽然零值通常会导致不打印该组件,但如果所有系数均为零,则应打印常数0。 Right: 0 Wrong: 0x+0 Wrong: (nothing) 这是代码高尔夫球,因此获胜者将是字节数最少的程序。 输入和输出示例 Input: Output: [0] 0 [0,0] 0 [0,-1,35,0] …

22
将针藏在干草堆中(警察)
这是警察和强盗挑战的一部分。去这里抢劫犯的一部分。 警察的挑战 您应该使用自己选择的语言编写程序或函数,该程序或函数将输出字符串Haystack。但是,必须有可能从程序中删除某些字符子集(而无需重新排序其余字符),以使生成的字符串也是使用相同语言的有效程序,而将其打印出来Needle。这两个程序/功能都可以选择打印一条尾随的换行符(彼此独立),但没有其他内容。输出区分大小写,并且必须遵循提供的确切大小写。 当然,您的目标是很好地隐藏“针”。但是请注意,可以使用任何有效的解决方案来破解提交的内容,而不仅仅是您想要的解决方案。 请在您的答案中包括: 您提交的语言(和相关版本)。 Haystack程序的大小(以字节为单位)。 Haystack程序本身。 如果不是STDOUT,则为输出方法。 如果可能,请提供指向您所选择语言的在线口译/编译器的链接。 您提交的内容可能是程序或功能,但不能是摘要,并且您不得采用REPL环境。您不得输入任何内容,而可以通过STDOUT,函数返回值或函数(输出)参数进行输出。 两种程序/功能都必须在合理的台式机上在5秒内完成,并且需要确定性。您不得使用内置函数进行散列,加密或随机数生成(即使您将随机数生成器植入固定值)。 为了公平起见,必须为您选择的语言提供免费的解释器或编译器。 如果找到Needle程序,答案将被破解。如果您的答案在7天内没有被破解,则可以在答案中显示预期的Needle程序,从而确保提交的内容安全。只要您不公开解决方案,即使7天已经过去,它也可能会被强盗破解。最短的安全 Haystack程序(以字节为单位)获胜。 例子 这是几个使用不同语言的简单示例: Ruby Haystack: puts 1>0?"Haystack":"Needle" Delete: XXXXXXXXXXXXXXX Needle: puts "Needle" Python 2 Haystack: print "kcatsyaHeldeeN"[-7::-1] Delete: XXXXXXXX XX Needle: print "eldeeN"[::-1] 请注意,已删除字符的子集不必是连续的。 完整的提交 <script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = …

30
很长的Terza Rima
描述 输出一个很长的Terza Rima的韵律方案。 输入值 没有。 输出量 ABA BCB CDC DED EFE FGF GHG HIH IJI JKJ KLK LML MNM NON OPO PQP QRQ RSR STS TUT UVU VWV WXW XYX YZY 规则 您可以在使用空格或换行符分隔节之间进行选择,因此: ABA BCB... 要么 ABA BCB ... 每行允许一个尾随空白,一个尾随换行。 输出可以是大写或小写。 这是code-golf,因此每种语言的最短代码(以字节为单位)获胜。

23
输出三位一体大厅素
基于这个Math.SE问题 ; 从此答案复制的数字。当然,最初来自Numberphile视频。 您的任务是输出以下1350位素数: 888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888111111111111111111111111888888111111111111111111111111888888111111811111111118111111888888111118811111111118811111888888111188811111111118881111888888111188811111111118881111888888111888811111111118888111888888111888881111111188888111888888111888888111111888888111888888111888888888888888888111888888111888888888888888888111888888111888888888888888888111888888811188888888888888881118888188811188888888888888881118881188881118888888888888811188881118888111888888888888111888811111888811118888888811118888111111188881111111111111188881111111118888111111111111888811111111111888811111111118888111111111111188881111111188881111111111111118888811118888811111111111111111888881188888111111111111111111118888888811111111111111111111111888888111111111111111111111111118811111111111111111111111111111111111111111111062100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 您可以选择在输出中包括换行符。 规则 这是kolmogorov-complexity,因此没有输入。 您的程序必须在一小时内在标准计算机上终止-如果关闭,我将使用我的程序进行测试。如果您的程序运行了超过一分钟,或者没有在TIO上终止,请在计算机上注明时间。 这是代码高尔夫球,因此以字节为单位的最短代码胜出。

26
制作平方字
挑战 您的任务是创建一个程序,该程序接受任何给定的字符串输入,并以平方格式输出输入。空字符串应返回一个空字符串。 例子 给定输入: golf 您的程序应输出: golf o l l o flog 输入: 123 输出: 123 2 2 321 输入: a 输出: a 输入: Hello, world! 输出(注意,和之间的空格-间隙不只是换行符): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

22
玫瑰让我转22.5
给定一个字符串,它是16点罗盘上的方向之一 以顺时针方向输出紧邻输入方向的两个方向。 具体来说,您需要处理以下(和仅这些)输入/输出对: Input Output N NNW NNE NNE N NE NE NNE ENE ENE NE E E ENE ESE ESE E SE SE ESE SSE SSE SE S S SSE SSW SSW S SW SW SSW WSW WSW SW W W WSW WNW WNW W NW NW WNW NNW …

30
输出数字最大为2 ^ n-1,“已排序”
以一个正整数n作为输入,并输出可以使用n位创建的(一些)十进制数,按以下方式排序: 首先列出仅可以使用一个创建的所有数字,1其余0以二进制表示形式(已排序)列出,然后使用两个连续的 1,其余的0,然后连续的 三个依次创建的所有数字1。 让我们看一下n = 4的情况: 0001 - 1 0010 - 2 0100 - 4 1000 - 8 0011 - 3 0110 - 6 1100 - 12 0111 - 7 1110 - 14 1111 - 15 因此,n = 4的输出为:1、2、4、8、3、6、12、7、14、15(可选输出格式)。 测试用例: n = 1 1 n = 2 1 2 …

30
这个数字是阶乘吗?
任务 给定一个自然数作为输入,您的任务是根据输入是否为任何自然数的阶乘来输出真值或假值。您可以假定输入数字将始终在您的语言支持的数字范围内,但是您一定不能滥用本机数字类型来解决问题。 适用标准漏洞。 输入值 系统会为您提供自然数(类型Integer或类似数字)。 您可以采用任何所需的输入方式,但前提是要假定其位于预定义变量中。prompt允许从文件,控制台,对话框(),输入框等进行读取。也可以作为函数参数输入! 输出量 您的程序应根据输入数字是任何自然数的阶乘来输出真实或错误值。 确保所有输入的真实/假值都一致,即,如果您使用一对1和0分别表示真实和假值,那么您的程序必须为应该具有真实值的所有输入输出1,而对于所有输入则为0。所有应具有假值的输入。 除了将其写入变量之外,您可以采用任何所需的输出方式。允许写入文件,控制台,屏幕等。功能也return被允许! 您的程序不得对任何输入产生错误! 测试用例 Input Output 1 Truthy (0! or 1!) 2 Truthy (2!) 3 Falsey 4 Falsey 5 Falsey 6 Truthy (3!) 7 Falsey 8 Falsey 24 Truthy (4!) 120 Truthy (5!) 获胜标准 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

14
退格并重新输入单词列表
以下是从一个字符串退格并重新键入的方法: 从第一个字符串开始。 最后删除字符,直到结果是第二个字符串的前缀。(这可能需要0步。) 在末尾添加字符,直到结果等于第二个字符串。(这也可能需要0步。) 例如,从fooabc到的路径fooxyz如下所示: fooabc fooab fooa foo foox fooxy fooxyz 任务 给定一个单词列表,编写一个程序,该程序从空字符串到列表中的所有单词依次退格并重新键入,然后返回到空字符串。输出所有中间字符串。 例如,给定输入list ["abc", "abd", "aefg", "h"],输出应为: a ab abc ab abd ab a ae aef aefg aef ae a h 规则 您可以返回或打印字符串列表,也可以返回带有某些定界符的单个字符串。您可以选择包括初始和最终的空字符串。确保输入至少包含一个单词,并且每个单词只能包含小写ASCII字母(a– z)。编辑:保证输入中的连续字符串彼此不相等。 这是代码高尔夫球;以字节为单位的最短代码获胜。 Python 3中的参考实现:在线尝试!
38 code-golf  string 

30
您自己的“ for”指令
您自己的“ for”指令 假设您有以下输入: a, b, c, d 输入可以单行使用任何格式“ a / b / c / d”或“ a,b,c,d”等。 您也可以有4个输入。 您必须编写以下行为(此处为伪代码): var i = <a> while (i <b> <c>) print i i = i + <d> print "\n" 以下是一些测试案例: input : 1,<,10,1 output : 1 2 3 4 5 6 7 8 9 …
38 code-golf 

30
不要给我五个!
题 : 您将获得序列的开始和结束整数,并应返回其中不包含数字的整数数目5。应该包括开始和结束编号! 例子: 1,9→1,2,3,4,6,7,8,9→结果8 4,17→4,6,7,8,9,10,11,12,13,14,16,17→结果12 50,60→60→结果1 -59,-50→→结果0 结果可能包含五个。 起始编号将始终小于终止编号。两个数字也可以为负! 我对您的解决方案以及解决方案的方式感到非常好奇。也许你们中有人会找到一个简单的纯数学解决方案。 编辑 这是一个代码高尔夫球挑战,因此最短的代码获胜。
38 code-golf  math 

13
零和保障
介绍 考虑一个非空整数列表L。甲零和切片的大号是的连续子序列大号其总和等于0。例如,[1,-3,2]是零和切片[-2,4,1,-3,2,2 ,-1,-1],但[2,2]不是(因为它的总和不为0),[4,-3,-1]也不是(因为它不连续)。 的零和切片的集合大号是零和盖的大号如果每一个元素属于切片中的至少一个。例如: L = [-2, 4, 1, -3, 2, 2, -1, -1] A = [-2, 4, 1, -3] B = [1, -3, 2] C = [2, -1, -1] 三个零和切片A,B和C构成L的零和覆盖。同一切片的多个副本可以出现在零和封面中,如下所示: L = [2, -1, -1, -1, 2, -1, -1] A = [2, -1, -1] B = [-1, -1, 2] …

30
从babbab到zyzyz的每个词
您的任务是编写一个程序,该程序将输出具有以下结构的每五个字母单词的可读列表: 辅音-元音-辅音-元音 输出应按字母顺序排序,每行一个单词,并且没有重复的单词两次。可以是小写或大写,但不能混合使用。因此,列表可以像这样开始和结束: babab babac babad ... zyzyw zyzyx zyzyz 元音是一个 - ë - 我 - Ø - ü - Ÿ,其他20个英文字母都是辅音字母。 单词不一定是实际的词典单词。 最短的代码胜出。 注意:几年前,我在大学网站上偶然发现了一个完全符合此要求的程序。原来我的名字和姓氏符合cvcvc约束,我一直在自我搜索。

30
查找与零相邻的最大数字
挑战: 以向量/整数列表作为输入,并输出与零相邻的最大数字。 规格: 与往常一样,可选的输入和输出格式 您可以假定将至少有一个零和至少一个非零元素。 测试用例: 1 4 3 6 0 3 7 0 7 9 4 9 0 9 0 9 15 -2 9 -4 -6 -2 0 -9 -2 -11 0 0 0 0 0 -12 10 0 0 20 20 祝你好运,打高尔夫球愉快!
38 code-golf  number 

30
它是一个平衡的数字吗?
如果数字的每半位数之和相等,则数字是平衡的,因此:1423是平衡的,因为1+4 = 2+3,所以是:42615因为4+2=1+5。请注意,如果数字的位数为奇数,则中间的数字不包含在任何一侧(或包含在两侧)。 挑战: 取一个正整数作为输入,如果它是平衡的,则输出一个真实值,如果不平衡,则输出一个虚假值。 测试案例(真实) 1 6 11 141 1221 23281453796004414 523428121656666655655556655656502809745249552466339089702361716477983610754966885128041975406005088 测试用例(假) 10 12 110 15421 5234095123508321 6240911314399072459493765661191058613491863144152352262897351988250431140546660035648795316740212454 不会有从零开始的数字,例如00032代替32。您必须支持至少100个数字(大于2^64-1)的数字。与往常一样,是可选的输入格式,因此如果需要,您可以在数字前后加上撇号。
38 code-golf  number 

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.