Questions tagged «code-golf»

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

30
打印奥斯卡最佳图片奖得主
这项挑战是向2017年奥斯卡最佳影片奖得主La La Land Moonlight致敬! 您的挑战是打印文本 啦啦土地 暂停一秒钟,然后将文本更改为显示 啦啦地月光原始文本(La La Land)必须带有删除线。这可以通过清除屏幕,在原始文本上绘图或通过任何其他巧妙的解决方案来实现。 这是一个代码高尔夫球,因此最低字节获胜。适用标准代码高尔夫球规则。

30
无限磁盘I / O的最短代码
(只需在Google Chrome:D中打开50个标签(开个玩笑,不,您不能)) 无限磁盘I / O任何语言的最短代码,C#示例: using System.IO; namespace FileApp { static class Program { public static void Main() { do { File.WriteAllText("a", "a"); File.Delete("a"); } while (true); } } } 但是,您不能只填满整个磁盘,因为磁盘最终将停止并且是有限的。 而且你不能只阅读,无限写作必定会发生。(它必须在足够的运行时间后杀死我的SSD。) 破解!:)
49 code-golf 

30
最短的程序,连续分配内存
编写一个程序,该程序可以永久运行,并在运行时间越长的时候就在堆上分配越来越多的内存,至少要等到达到操作系统对可分配内存量的限制为止。 许多内核实际上不会保留分配给您的内存,除非您将其用于某些事物,所以如果您的程序是C语言或其他低级语言,则必须确保在每个页面上都写一些东西。如果您使用的是解释语言,则可能不必担心这一点。 最短的代码胜出。
49 code-golf 

9
以xkcd表示法读取日期
在关于ISO 8601标准日期格式的 xkcd中, Randall用一种颇为奇怪的替代表示法偷偷摸摸: 大数字是以当前顺序显示在当前日期中的所有数字,小数字是该数字出现的基于1的索引。因此,以上示例表示2013-02-27。 让我们为这种日期定义一个ASCII表示形式。第一行包含索引1到4。第二行包含“大”数字。第三行包含索引5到8。如果在一个插槽中有多个索引,则它们从最小到最大依次列出。如果m单个插槽中最多有索引(即,在同一数字上,并且在同一行中),则每一列应为m+1字符宽度且左对齐: 2 3 1 4 0 1 2 3 7 5 67 8 另请参见伴随挑战,以获得相反的转化。 挑战 给定xkcd格式的日期,请输出相应的ISO 8601日期(YYYY-MM-DD)。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 您可以假设输入的是介于0000和之间的任何有效日期9999。 输入中将没有任何前导空格,但是您可以假定这些行用空格填充到一个矩形,该矩形最多包含一个尾随空格。 适用标准代码高尔夫球规则。 测试用例 2 3 1 4 0 1 2 3 7 5 67 8 2013-02-27 2 3 1 4 0 1 2 4 5 5 …

30
输出字母,字母或仅一个字符
挑战很简单: 编写一个接受输入的函数或程序,x如果x是小写字母的一部分,则输出小写字母;如果x是大写字母的一部分,则输出大写字母,并输出x不属于大写字母的一部分。 规则: 输入可以是函数参数或来自STDIN 输入将是从32到126(空格到波浪号)的任何可打印ASCII字符。 输入的内容可以在引号'x'或内"x",但请记住'和"是有效的输入,应予以支持。 输入的内容可以是字母中的任何字母,即您不能假定它是a或A。 输出应仅是字母之一或单个符号,但结尾的换行符可以。 字母表中的字母不应由空格,逗号或其他任何字符分隔。 一些例子: F ABCDEFGHIJKLMNOPQRSTUVWXYZ z abcdefghijklmnopqrstuvwxyz " " <- Input: Space <- Output: Space 以字节为单位的最短代码获胜。 可选,但不胜感激:如果您的语言有在线口译员,请同时发布链接,以便其他人可以轻松对其进行测试。 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 …

5
这是一个自我参考的问题
百乐的自指配方(从维基百科复制) Tupper的自指代公式是Jeff Tupper定义的公式,当在平面中非常特定的位置以二维方式绘制图形时,可以对其进行“编程”以直观地再现公式本身。它在各种数学和计算机科学课程中用作绘图公式的练习。 楼层功能在哪里 。 我们k是以下543位数字: 960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719 如果一个图的点的集合(x, y)中0 <= x < 106,并k <= y < k + 17满足上面给出的不平等,结果图如下所示(请注意,在该地块的轴已经发生了逆转,否则画面出来倒): 所以呢? 关于此公式的有趣之处在于,它可以用于绘制任何可能的黑白106x17图像。现在,从头到尾的搜索实际上非常繁琐,因此有一种方法可以计算出图像出现的k值。这个过程非常简单: 从图像第一列的底部像素开始。 如果像素为白色,则k值将附加一个0。如果是黑色,请附加1。 向上移动列,重复步骤2。 一旦到达该列的末尾,请按照相同的过程移至下一列并从底部开始。 分析完每个像素后,将此二进制字符串转换为十进制,然后乘以17得到k值。 我的工作是什么? 您的工作是创建一个可以拍摄任何106x17图像并输出其相应k值的程序。您可以进行以下假设: 所有图片均为106x17 所有图像将仅包含黑色(#000000)或白色(#FFFFFF)像素,中间没有任何像素。 也有一些规则: 输出只是k值。它必须具有适当的基数,但可以是任何格式。 必须从PNG或PPM读取图像。 没有标准漏洞。 测试影像 [ ]应该产生〜1.4946x10 542 [ ]应该产生〜7.2355x10 159 [ ]应产生2 1801 * 17 [ ]应该产生(2 1802 -1)* …

13
耶!藏宝图!
介绍 “是的!我们有个小伙子自称是“程序员”,在地图上隐藏了我们的藏宝!但是“写得很机智”这个奇怪的数字“ n个字母!”“ E5,N2,E3”……甚至还能做什么? “疯狂!!甚至没能画出合适的藏宝图,没用的克汀丁。给我们修理吧!我们会赠予您一部分宝藏!” 挑战说明 一群海盗在阅读藏宝图时遇到了麻烦。您可以编写一个程序将其转换为更多盗版形式吗? 作为输入,您将收到原始的藏宝图。这是一个用逗号分隔的字符串的列表,每个字符串包括一个字母部分(告诉海盗他们需要走的方向)和一个数字部分(告诉海盗在这个方向上要走多少步)。例如,以下藏宝图: E2,N4,E5,S2,W1,S3 意思是“向东走两步,向北走四步,向东走五步,向南走两步,向西走一步,然后向南走三步。” 作为输出,就会输出地图图形形式,用文字>,^,v,和<为指针。这是上述输入的输出: >>>>>v ^ v ^ v< ^ v >>^ X 请注意,我们已将南面的最后一步替换为X。这是因为最后一步是宝藏在哪里,众所周知,海盗的宝藏地图上必须有一个X,否则他们将不知道如何阅读。 顺便说一下,地图永远不会交叉,因此您不必担心重叠问题。另外,允许在输出末尾添加尾随新行。 样本输入和输出 S5,W2 v v v v v X< N1,E1,S1,E1,N1,E1,S2 >v>v ^>^X N1 X N6,E6,S6,W5,N5,E4,S4,W3,N3,E2,S2,W1,N2 >>>>>>v ^>>>>vv ^^>>vvv ^^^Xvvv ^^^^<vv ^^^<<<v ^^<<<<< E21,S2 >>>>>>>>>>>>>>>>>>>>>v X N12,E11,S12,W2,N4 >>>>>>>>>>>v ^ v …

6
您的车只向右转!
介绍 您有被困在障碍道上的失控汽车中的不幸。除了损坏的转向系统外,汽车的所有功能均无响应。它可以直行,也可以向右转。可以引导汽车安全吗? 机械学 您的汽车从8x8地图的左上角开始,并试图在右下角实现安全。赛车的方向(最初是向右)以90度为增量进行测量。汽车可以执行以下两项操作之一: 向前开一个方块,或者 顺时针旋转90度,然后向前驱动一个方块 请注意,汽车无法足够急转弯以在单个广场上执行180度转弯。 一些广场是障碍。如果汽车进入障碍物广场,它将坠毁。假定8x8航道之外的所有物体都是障碍物,因此驶离航道等同于坠毁。 右下角的正方形是安全正方形,它使汽车能够逃脱障碍物路线。假定起始正方形和安全正方形不是障碍。 任务 您必须编写一个程序或函数,以8x8数组(矩阵,列表列表等)为输入,表示障碍物路线。程序返回或打印一个布尔值或类似的真值。如果汽车有可能在不撞车的情况下到达安全广场(即,如果地图可解决),则输出为True,否则为False。 计分 标准代码高尔夫规则-获胜者是字节最少的代码。 奖金: 如果对于一张可解决的地图,您的代码输出了一系列有效的驾驶员输入来引导汽车驶入安全广场,请从得分中减去10个百分点。示例输出格式可能是SRSSR(指示“直”,“右”,“直”,“直”,“右”)。该输出将替代标准True输出。 如果对于无法解决的地图,代码的输出区分不可避免的崩溃情况和可能永远绕过障碍物路线的情况,请从分数中减去10个百分点。Crash如果无法避免发生碰撞,或者Stuck汽车永远卡在障碍物路线中,则可能是示例输出。这些输出将替代False无法解决的地图的标准输出。 例 如果给程序一个8x8数组,例如: [[0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0], [1, 1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0], …

30
输出当前时间
挑战 您必须通过以下任何一种方式连续输出当前时间(直到被中断取消),每秒一次。 它必须为24小时或AM / PM格式。 如果是前者,则必须用冒号隔开(即15:47:36)。 如果是后者,则必须用冒号隔开,并紧跟AM / PM(即3:47:36 PM) 它可能是从互联网上提取的。 可能是系统时间。 它必须输出支持您选择的文本的任何自然可访问的输出形式。 输出中可能除了时间之外还包含其他信息,但是您必须保证每秒仅输出一次时间。 连续输出必须相隔一秒-如果您选择等待输出之间的秒数变化,那很好。如果您在每个输出之间等待一秒钟,那将是完全可以接受的,尽管最终会失去准确性。 由于这是一个目录,因此可以竞争之后创建的语言。请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。除此之外,必须遵守所有代码高尔夫球的标准规则。大多数语言的提交都将以适当的预先存在的编码(通常为UTF-8)以字节计分。 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在代码段中: ## [><>](http://esolangs.org/wiki/Fish), 121 bytes 显示代码段 var …
49 code-golf  date 

30
用于验证信用卡号等的Luhn算法
挑战 编写最短的程序或函数以计算用于验证(信用卡)号码的Luhn算法。 Luhn算法解释 在RosettaCode中,为此挑战指定了该算法,其示例输入为49927398716: Reverse the digits, make an array: 6, 1, 7, 8, 9, 3, 7, 2, 9, 9, 4 Double the numbers in odd indexes: 6, 2, 7, 16, 9, 6, 7, 4, 9, 18, 4 Sum the digits in each number: 6, 2, 7, 7, 9, 6, …

30
爸爸笑话很有趣
我们都知道经典的父亲笑话是这样的: 有人说了一句话来形容自己(例如I'm tired或I'm confused)。 爸爸玩笑的狂热爱好者来了并回答Hi <adjective>, I'm Dad!,因为介绍采用相同的格式(I'm Peter与相同的格式I'm hungry)。 您的工作是采用自描述词的形式输入,并输出适当的爸爸笑话形式,但是您将使用所编程语言的名称,而不是使用“ Dad”一词。在。 测试用例(假设它们正在由Python解析): I'm amazing Hi amazing, I'm Python! I'm tired Hi tired, I'm Python! I'm hungry Hi hungry, I'm Python! I'm fat Hi fat, I'm Python! 现在,假设这些测试用例是由Golfscript解析的: I'm a programmer Hi a programmer, I'm Golfscript! I'm a question-writer Hi …

30
您语言中最短的代码,可在重新启动后保留字符串
您的程序: 您将编写两个程序(都使用相同的语言)。存储程序从STDIN中获取一个字符串,并将其存储在持久的位置(请参见下文),然后无错误退出。检索程序不输入任何内容,检索存储的字符串,然后将其打印到STDOUT。 持久性的客观测试: 您应该能够在本地计算机上运行存储程序,然后重新启动本地计算机,然后调用本地计算机上的检索程序。只要通过此重新启动测试,就可以随意存储字符串(即使在Web上)。 测试用例: 存储然后检索: echo foo | Store Retrieve foo 重复存储应覆盖(如set()方法): echo foo | Store echo bar | Store Retrieve bar 重复检索是非破坏性的(例如get()方法): echo foo | Store Retrieve foo Retrieve foo 在调用存储之前进行检索: 您无需为此担心。您的检索程序可以假定该存储程序已在过去的某个时间运行。 输入/输出灵活性。 人们要求我将其从严格的STDIN / STDOUT扩展到标准IO规则。我不能,因为这会引入太多漏洞。一些标准IO选项已经以持久方式存储了输入,例如“程序可以从文件中获取输入”。我想比严格的STDIN和STDOUT更灵活,但不要打开闸门。 从标准的IO规则线程中,我正在挑选那些不会克服挑战的规则: 如果需要,程序可以通过GUI提示符和命令行提示符进行输入 程序可以通过在屏幕上显示来输出,包括GUI对话框 程序可以通过命令行参数进行输入 程序可以输出到STDERR,但实际上仍然不会引发错误。 如果使用备用选项,则必须是用户交互的。除了将输入输入到程序中,将其输入程序提供的提示中或将输入作为程序的命令行参数输入之外,用户无需执行任何其他工作。除了运行您的检索程序之外,用户无需执行任何其他操作即可看到屏幕上显示的输出或发送到STDOUT或STDERR的输出。 允许的假设: 您的两个程序将在同一目录中运行 您的程序对该目录具有读写权限 您创建的文件将在重启后保留下来(不在临时目录中) 允许使用不属于字符串的尾随换行符。没有其他尾随空格 这是代码高尔夫球,您的得分是这两个程序的字节总和。

30
检测热浪
背景 荷兰皇家气象学院将热浪 * 定义为≥25°C天气(“夏季天气”)至少连续 5 天的一系列,至少 3天为30℃以上(“热带天气”) )。 不必连续测量热带天气:例如:30, 25, 30, 26, 27, 28, 32, 30是8天长的热浪和4天热带天气。 *(按荷兰标准。) 挑战 给定一个非空的正整数列表,该整数表示连续几天的摄氏温度测量值,请确定该列表是否包含热浪(按照上述定义)。 以字节为单位的最短答案将获胜。 测试用例 虚假: [30] [29, 29, 29, 47, 30] [31, 29, 29, 28, 24, 23, 29, 29, 26, 27, 33, 20, 26, 26, 20, 30] [23, 31, 29, 26, 30, 24, …

1
Ruby on Rails(或Trackety Track)
您是铁路工程师Ruby。您的任务是在任何给定的山谷中追踪,以使其到达每个站点(M)。铺设的轨道数量并不重要,但必须以一条连续的路径铺设,该路径从山谷的入口/出口点(>)开始和结束,并且在任何一点都不会交叉。还有其他一些限制:mountains(^)是不可逾越的,因此您必须绕过它们,~必须使用bridge(X)穿越rivers (),并且山谷(#)的边缘也是不可实现的。 赛道规则 如果轨道放置不正确,将会出轨,没人会想要,所以这是轨道放置的规则。 轨道有四种:- | / \。 以下是每个人如何与其他人结合的方法: 允许的组合来自-(在每个示例的中心): ##### ##### ##### ##### ##### ##### ##### # # # # #\ # # # # /# #\ /# # # #---# # --# # --# #-- # #-- # # - # # - # # # #/ # …

30
脱绳
现在我们已经知道如何从其空格中删除字符串。 但是,作为适当的先生/女士,我们宁愿脱衣服。 脱绳与剥线相同,只是更细腻。与其一次删除所有前导和尾随空格,不如一一删除它们。我们也交替领先和落后,以免烫伤步骤之间。 以" codegolf "(五个前导和尾随空格)开头的示例: codegolf codegolf codegolf codegolf codegolf codegolf codegolf codegolf codegolf codegolf codegolf 首先输出字符串不变。然后,输出每个步骤。首先删除前导空格(如果适用-参见规则2)。 输入可能具有不同数量的前导和尾随空格。如果一侧空间不足,请继续给另一侧脱衣服,直到弦线裸露为止。 输入可能没有前导空格或尾随空格。如果是这样,请原样输出。 使用PPCG的默认I / O方法。PPCG默认漏洞是禁止的。 可以确定在空输入或仅包含空格的输入上的未定义行为。 您可以假设该字符串将仅包含ASCII可打印空间(0x20到0x7E)中的字符。 示例-用点替换空格.以提高可读性: 4 leading spaces, 5 trailing: "....Yes, Sir!....." ....Yes, Sir!..... ...Yes, Sir!..... ...Yes, Sir!.... ..Yes, Sir!.... ..Yes, Sir!... .Yes, Sir!... .Yes, Sir!.. Yes, Sir!.. Yes, …
48 code-golf  string 

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.