编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

30
两者各有不同-警察
注意 -此挑战现已结束。任何新的答案将被忽略,接受的答案将不会改变 挑战 编写一个有效的程序,当仅更改,删除或添加程序中的两个字符时,将完全更改输出。 更改后的输出与原始输出之间的Levenshtein距离必须为15或更大。 输出必须是非空且有限的。因此,您的程序必须在1分钟内终止。 您的输出必须是确定性的,每次运行程序时都输出相同的内容。它也不得依赖平台。 不允许使用任何散列函数,如PRNG中内置的那样。同样,不允许播种RNG。 三天后,完整的提交将变得安全。为了声明这种安全性,您应该编辑答案以显示正确的答案。(澄清:在您给出答案之前,您并不安全,仍然会被破解。) 格式化 您的答案应采用以下格式: # <Language name>, <Program length> ## Code <code goes here> ## Original Output <output goes here> ## Changed output <changed output goes here> 强盗 强盗的挑战是找出您更改了哪个两个字符。如果强盗破解了您的解决方案,他们将在您的答案上留下评论。 您可以在此处找到强盗的线索。 获奖 最简单的解决方案的人将获胜。 排行榜 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>site = 'meta.codegolf';postID = 5686;isAnswer = false;QUESTION_ID = 54464;var …

30
句中的阶乘!
任务 创建一个不使用内置阶乘函数来计算数字阶乘的程序。简单?要注意的是,您必须以haiku形式编写整个程序(包括对其进行测试)。 您可以根据需要使用任意多个句,但是在发音时,它们必须遵循5-7-5音节格式。 计分 这是一场人气竞赛,因此您必须获得最多的投票才能获胜。您的程序必须至少包含一个完整的句,并且所有句必须完整。 读取代码时,每个句的第一行将有5个音节,第二行将有7个,第三行将有5个。

30
打印代码的最后,中间和第一个字符
挑战很简单:按顺序打印程序源代码的最后,中间和第一个字符。 假设n字符的源长度和1索引,中间字符的定义如下: 如果n是偶数,则打印n/2-th和n/2 + 1-th字符。(abcdef == cd) 如果n为奇数,则打印(n-1)/2 + 1第-个字符。(abcde == c) 规则 如果没有输入,则以形式打印源代码中的最后,中间和第一个字符[last][middle][first]。这将是3-4个字符长。 输出不得包含任何尾随空格。但是,如果空白是第一个,中间或最后一个字符,则必须这样打印。 源代码必须为n >= 3字符长。 代码必须包含>= 3唯一字符。 禁止出现标准漏洞。 这是代码高尔夫球,因此以字符为单位的最短解决方案将获胜。 样品 # Form: [code] --> [output] xyz --> zyx abcd --> dbca 1 --> # not allowed: too short abcde --> eca aaabb --> # not allowed: not …
60 code-golf  quine 

30
Oreoorererereoo
Oreoorererereoo 给定与单词“ oreo”相似的输入字符串,请给出与输入字符串一样宽的cookie的ASCII表示形式(以确保cookie的稳定性)。 规则 输入为小写字母,这是一个非空字符串,不包含空格,其中包含字符串“ o”和“ re”的任何组合,并且仅包含那些字符串。 字符串“ o”代表固态饼干,而字符串“ re”代表馅料。 输出必须是与输入字符串一样宽的堆叠cookie。 输出可能不是字符串数组 Cookie的每一边必须与填充物重叠一个字符 用于输出的字符不必与下面的输出(█和░)匹配,对于Cookie的两个部分,它们必须是不同的非空白字符 填充左侧的空白填充是必需的,任何结尾的空白都是可选的 例子 Input: oreo Output: ████ ░░ ████ Input: o Output: █ Input: re Output: (two spaces) Input: rere Output: ░░ ░░ Input: oreoorererereoo Output: ███████████████ ░░░░░░░░░░░░░ ███████████████ ███████████████ ░░░░░░░░░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░░░ ███████████████ ███████████████ 因为这是代码高尔夫球,所以最短的答案会获胜,祝您好运:)

30
这不是火箭科学
编写一个包含单行字符串的程序或函数。您可以假定它仅包含可打印的ASCII。打印或返回ASCII艺术火箭的字符串,例如 | /_\ |E| |a| |r| |t| |h| |_| /___\ VvV 输入字符串从上到下写在机身上。在这种情况下,输入为Earth。火箭的高度(包括火焰)始终是弦的长度加五。 输出中的每一行最多可以有两个尾随空格,并且可能只有一个可选的尾随换行符。以字节为单位的最短代码获胜。 更多示例: [empty string] | /_\ |_| /___\ VvV a | /_\ |a| |_| /___\ VvV |0 | /_\ ||| |0| |_| /___\ VvV \/\ | /_\ |\| |/| |\| |_| /___\ VvV _ _ [note trailing space] …

3
跳出框框思考-我做对了吗?
我一直在听,跳出框框思考是一个值得实现的目标,但是如何判断我是否成功完成了目标呢? 为了解决这个难题,我已经写了一个Brainwave-to-ASCII转换器,理论上应该产生类似 # +------------+ # | thinking | # | | # +------------+ # # 要么 # +------+ # | | thinking # | | # | | # +------+ # # 这样就很容易判断一个人是否在跳槽。(#不在输出中,代表新行。) 但是,由于错误,有时仅返回输出的较小部分: | | # +---------+ # thinking # # +# |# inking |# # # 任务 请帮助我编写一个程序或函数来自动对Brainwave-to-ASCII …

18
镇上有两个新的警长-识别DJMcMego对!
我们在城镇Mego和DJMcMayhem中有一些新的警长主持人。我们需要挑战以适当地尊重他们的新职位,所以我们走了。 将悬停在他们的个人资料上时,引起了我的注意-他们的用户ID为和。如果执行数位减法,您会发现一些令人兴奋的事情(当然,要考虑绝对差值):45941317163171631716459414594145941 3|1|7|1|6 4|5|9|4|1 -+-+-+-+- (-) 1|4|2|3|5 上述算法生成的数字为。此整数有一些特殊之处:它仅包含连续的数字,并以升序排列,但是恰好其中一个数字未正确放置。142351423514235444 如果数字绝对差是按升序排序的连续整数,但我们将其中的一个正整数称为DJMcMego对,则它们中的一个不属于它。即,可以将逐位减法的结果的确切一位移动到另一位置,使得所获得的整数仅具有以升序排序的连续数字。(a ,b )(a,b)(a, b) 在上面的示例中,该对是DJMcMego对,因为如果在和之间移动,则结果为,这满足条件。请注意,结果数字的数字不必以开头,它们应该是连续的。当一个人不确定应该做出什么决定时,他们总是可以依靠另一个人的帮助来解决问题。4 3 5 12345 1(31716 ,45941 )(31716,45941)(31716, 45941)4443335551234512345123451个11 您的任务是根据输入的正整数对是否为DJMcMego对来输出真实/虚假值。 您可以确保和的位数相同,始终至少为4。b一种aabbb 您可以采用任何合理格式的整数(即本机整数,字符串,数字列表等)。 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下会禁止这些漏洞。这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 测试用例 a, b -> Output 31716, 45941 -> Truthy 12354, 11111 -> Truthy 56798, 22222 -> Truthy 23564, 11111 -> Truthy 1759, 2435 -> Truthy 12345, …

13
打印字时钟
自从几年前我看到第一个单词以来,我总是被这种字时钟所困扰,在这种时钟中,时间实际上是由点亮或未点亮成有意义的句子来说明的。 该时钟上显示的文本如下。 IT IS HALF TEN QUARTER TWENTY FIVE MINUTES TO PAST TWO THREE ONE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN TWELVE O'CLOCK 您的任务是编写一个工作时钟。且仅当与打印当前时间相关时,单词才会亮起。否则,它们会熄灭。单词通过打印而被“点亮”,并且被替换为单词长度的多个空格而被“点亮”。 示例:如果当前时间是17:23,则打印的文字必须完全是以下内容: IT IS TWENTY FIVE MINUTES PAST FIVE 规则 打印的时间为12h,但没有AM / PM。 四舍五入仅以分钟为单位(秒完全无关)。舍入到最接近的5的倍数。因此,例如,即使17:52:38实际上最接近17:55,但是由于秒数无关紧要,因此17:52实际上被舍入为17:50,并且打印的文本是“六到十分钟”(具有相关的间距)。因此,如果XX为5的倍数,XX则将从HH:(XX-2):00到HH:(XX + 2):59使用。MINUTES如果或在分钟部分点亮(在“ TO”或“ PAST”之前)FIVE,则必须出现该单词。TENTWENTY 所有不相关的单词都将替换为所需的任意空格,以将文本保留在上方模板中的位置。尾随空格可能会被修剪。必须保留与将文本保持在预期位置相关的空间。 尾随线也可能被修剪。仍需要出现相关的空行。例: IT IS TEN MINUTES PAST …
59 code-golf  string  date 

30
计算尾随真相
受我亲爱的朋友和同事的启发,并为之缅怀, Dan Baronet,1956年-2016年。RIP 他为该任务找到了最短的APL解决方案: 任务 给定一个布尔列表,计算尾随真值的数量。 案例案例 {} → 0 {0} → 0 {1} → 1 {0, 1, 1, 0, 0} → 0 {1, 1, 1, 0, 1} → 1 {1, 1, 0, 1, 1} → 2 {0, 0, 1, 1, 1} → 3 {1, 1, 1, 1, 1, 1} …

13
建立一个沙堆
一个阿贝尔沙堆,对于我们的目的,是整数坐标无限电网,初始为空沙。每秒之后,将一粒沙粒放在(0,0)。只要网格单元有4个或更多的沙粒,它就会同时向其四个邻居中的每一个洒一个沙粒。(x,y)的邻居是(x-1,y),(x + 1,y),(x,y-1)和(x,y + 1)。 当一个细胞溢出时,可能导致其邻居溢出。一些事实: 此级联最终将停止。 细胞溢出的顺序无关紧要。结果将是相同的。 例 3秒后,网格看起来像 ..... ..... ..3.. ..... ..... 4秒后: ..... ..1.. .1.1. ..1.. ..... 15秒后: ..... ..3.. .333. ..3.. ..... 在16秒后: ..1.. .212. 11.11 .212. ..1.. 挑战 用尽可能少的字节编写一个函数,该函数采用单个正整数t并在t秒后输出沙堆的图片。 输入项 您选择的任何格式的单个正整数t。 输出量 t秒钟后使用字符显示沙堆的图片 . 1 2 3 编辑:使用任何您喜欢的四个不同字符,或绘制图片。如果您未使用“ .123”或“ 0123”,请在答案中指定字符的含义。 与示例不同,您的输出应包含显示沙堆的非零部分所需的最少行和列数。 也就是说,对于输入3,输出应为 3 对于4,输出应为 …

23
最短的不可匹配的正则表达式
您的任务是编写没有字符串可以匹配的最短有效正则表达式,包括空字符串。 提交内容必须采用以下格式(“文字符号”): /pattern/optional-flags 最短的正则表达式获胜。正则表达式的大小以字符为单位。(包括斜杠和标志) 请说明您的正则表达式如何工作(如果不简单的话) 谢谢,玩得开心!

30
找到最平滑的数字
您的挑战是找到给定范围内最平滑的数字。换句话说,找到最大素因数最小的数。 一个光滑的数字是其最大素因子小。这种类型的数字对于快速傅立叶变换算法,密码分析和其他应用程序很有用。 例如,在该范围内5, 6, 7, 8, 9, 10,8是最平滑的数字,因为8的最大质数为2,而所有其他数字的质数为3或更大。 输入:输入将是两个正整数,它们定义一个范围。该范围的最小整数是2。您可以选择范围是包含范围,排除范围,半排除范围等,只要可以在您的语言范围内指定任意范围即可。您可以通过函数输入,stdin,命令行参数或任何等效的语言方法获取数字。输入中没有编码额外的信息。 输出:在输入范围内返回,打印或等效的一个或多个最大平滑(最小最大因数)的整数。返回多个结果是可选的,但是如果选择这样做,则必须明确分隔结果。本地输出格式适合多种结果。 请在您的答案中说明您如何接受输入并给出输出。 得分:打高尔夫球。如果使用ASCII写入,则按字符计数;如果不使用ASCII,则按8 * bytes / 7计算。 测试用例: 注意:这些是Python样式的范围,包括低端但不包括高端。根据您的程序进行更改。仅需要一个结果。 smooth_range(5,11) 8 smooth_range(9,16) 9, 12 smooth_range(9,17) 16 smooth_range(157, 249) 162, 192, 216, 243 smooth_range(2001, 2014) 2002

10
将图像编码成推文(极端图像压缩版)
基于Stack Overflow 上非常成功的Twitter图像编码挑战。 如果一张图像值1000个字,那么您可以在114.97字节中容纳多少图像? 我要求您提出一种通用方法,将图像压缩为仅包含可打印ASCII文本的标准Twitter注释。 规则: 您必须编写一个可以拍摄图像并输出编码文本的程序。 程序创建的文本最长不能超过140个字符,并且只能包含代码点在32-126(含)范围内的字符。 您必须编写一个程序(可能是同一程序),该程序可以获取编码的文本并输出照片的解码版本。 您的程序可以使用外部库和文件,但是不需要Internet连接或与其他计算机的连接。 解码过程无法以任何方式访问或包含原始图像。 您的程序必须接受以下格式中的至少一种(不一定是其他格式)的图像:位图,JPEG,GIF,TIFF,PNG。如果某些或所有示例图像的格式不正确,则可以在程序压缩之前自行转换它们。 评判: 这是一个比较主观的挑战,所以获胜者将(最终)由我来评判。我的判断将集中在几个重要因素上,下面列出这些重要性逐渐降低的因素: 能够合理地压缩各种图像,包括未列为样本图像的图像 能够保留图像中主要元素的轮廓 能够压缩图像中主要元素的颜色 能够保留图像中次要细节的轮廓和颜色 压缩时间。尽管不像压缩图像的程度那么重要,但是速度更快的程序要比速度相同的慢程序更好。 您的提交应包括解压后的结果图像,以及生成的Twitter评论。如果可能,您还可以提供指向源代码的链接。 样本图片: 兴登堡, 山地景观, 蒙娜丽莎, 2D形状

20
挖一条边境战trench
背景:有太多来自布兰迪亚的非法移民越过边界前往阿斯坦。阿斯坦皇帝(Astan)曾命令您挖沟以将其拒之门外,而布兰迪亚(Blandia)必须支付费用。由于所有打字员都已休假直到安排好沟槽,因此您的代码必须尽可能短。* 任务:给定阿斯坦(Astan)和布兰迪亚(Blandia)之间边界的2D地图,让布兰兹(Blands)支付(带有土地)边界战trench。 例如:标记了Astanian单元,标记了ABlandic单元B和标记了Trench单元+(地图框仅是为了清楚起见): ┌──────────┐ ┌──────────┐ │AAAAAAAAAA│ │AAAAAAAAAA│ │ABAAAAAABA│ │A+AAAAAA+A│ │ABBBAABABA│ │A+++AA+A+A│ │ABBBAABABA│ │A+B+AA+A+A│ │ABBBBABABA│→│A+B++A+A+A│ │ABBBBABBBB│ │A+BB+A++++│ │ABBBBABBBB│ │A+BB+A+BBB│ │ABBBBBBBBB│ │A+BB+++BBB│ │BBBBBBBBBB│ │++BBBBBBBB│ └──────────┘ └──────────┘ 详细信息:该地图将至少具有三行三列。最上面的行将完全是Astanian,最下面的行将完全是Blandic。 只要输入和输出保持一致,就可以使用任何三个值来表示阿斯坦领土,布兰迪领土和边界trench沟。 自动机公式:在摩尔邻域中具有至少一个Astanian细胞的Blandic细胞成为边界沟槽细胞。 测试用例 [ "AAAAAAAAAA", "ABAAAAAABA", "ABBBAABABA", "ABBBAABABA", "ABBBBABABA", "ABBBBABBBB", "ABBBBABBBB", "ABBBBBBBBB", "BBBBBBBBBB" ] 变成: [ "AAAAAAAAAA", "A+AAAAAA+A", "A+++AA+A+A", "A+B+AA+A+A", "A+B++A+A+A", "A+BB+A++++", "A+BB+A+BBB", "A+BB+++BBB", "++BBBBBBBB" …

30
最短的人生游戏
康威的《人生游戏》是蜂窝自动化的经典例子。这些单元形成一个正方形网格,每个单元具有两个状态:存活或死亡。在每个回合中,每个小区都会根据其状态及其八个邻居的状态同时进行更新: 如果一个活细胞恰好有两个或三个活的邻居,则它仍然活着 如果一个死细胞正好有三个活着的邻居,它就会活着 您的任务(如果您选择接受)是用您喜欢的语言编写最短的《人生游戏》实现代码。 规则: 网格必须至少为20x20 网格必须环绕(所以网格就像圆环的表面一样) 您的实现必须允许用户输入自己的启动模式 如果您看不到正在发生的事情,GoL会毫无意义,因此必须有自动机运行的视觉输出,每转的结果显示的时间足够长!

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.