编程拼图和代码高尔夫

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

30
CodeGolf-头或尾
使用说明 给定一个未知的输入字符串i与任一值的头或尾,返回1的头或-1用于尾巴用最短的代码。 样本未打高尔夫球的代码(55b): if(i == "heads"){ print(1); }else{ print(-1); } 示例高尔夫球代码(16b): print("t">i||-1) 示例中使用了Javascript,但这不是必需的。抱歉,如果对于大多数用户来说太简单了,可以对其进行改进。
26 code-golf  string 

25
列表范围内的首页
挑战很简单,就是返回一个整数列表的列表,类似于Python range函数,只是每个连续的数字必须深于列表。 规则: 创建程序或非匿名函数 它应该返回或打印结果 结果应以列表(列表)或数组(数组)返回 如果参数为零,则返回一个空列表 这应该能够处理整数参数0 <= n <70。 (递归解决方案很快就爆炸了) 该函数只能使用一个参数调用。 其他行为是不确定的。 这是代码高尔夫,所以最短的代码获胜。 呼叫范例: rangeList(6) > [0, [1, [2, [3, [4, [5]]]]]] 测试用例: 0 => [] 1 => [0] 2 => [0, [1]] 6 => [0, [1, [2, [3, [4, [5]]]]]] 26 => [0, [1, [2, [3, [4, …

30
列表的模式(最常见的元素)
编写一个片段以计算正整数列表的众数(最常用的数字)。 例如, d = [4,3,1,0,6,1,6,4,4,0,3,1,7,7,3,4,1,1,2,8] 是1,因为它最多出现5次。 您可以假定列表存储在诸如中的变量中,d并且具有唯一模式。 例如:Python,49岁 max(((i,d.count(i))for i in set(d)), key=lambda x:x[1]) 这是代码高尔夫球,因此以字节为单位的最短解决方案为准。

9
高尔夫维恩图生成器
高尔夫维恩图生成器 为了恰当地庆祝约翰·维恩诞辰180周年,今天的任务是创建一个输出维恩图的程序! 输入: 一个正整数N,它将定义图中显示的数字范围(从零到N)和三组正整数。 输出: 3集维恩图,显示从0到0的所有整数,N并通过在图的适当区域中显示它们(类似于此整数)来显示集合之间的关系。 笔记 使用stdin(或与您的语言等效的任何语言)获取值。 您可以定义集合和集合的输入格式N(以逗号,斜杠或最适合您的形式分隔)。 未出现在任何集合中但在指定范围内的数字必须出现在图表上,而不是在任何区域内。 这些集无需命名。 输出可以是图形或ascii-art。 该图可以具有任何形状,只要边界可以清楚地区分即可(例如,如果您选择ASCII艺术作品,则必须使用+(或类似符号)来跨越边界)。 区域可能但不必着色。 禁止生成Venn图的任何内置函数或第三方库。 适用标准漏洞。 这是code-golf,因此以字节为单位的最短代码胜出。

15
最短代码,随机放置点并连接它们
任务 这是一个非常简单的编码任务,您的程序所要做的就是将一个点放置在画布上(或用另一种编码语言替代),并将其连接到所有已放置的点上。您的程序必须接受一个输入,即应放置的点数,并在连接点的情况下输出某种显示。 例 要求 我必须能够运行它,这意味着它必须具有编译器/工具才能在线运行或公开下载。 允许您使用在设置此挑战之前创建的任何库,只要它并非旨在解决该问题的唯一目的即可。 这是最短的代码任务,即字符。注释,更改颜色的代码(用于修饰)和库将被忽略。 您的答案必须是唯一的,不要窃取其他人的代码,请缩短一些字符并重新发布。 它必须能够在5分钟内运行(值5和100)。它还必须使用至少200 * 200的分辨率,并使用非平凡的分布将每个点放在画布上的随机位置。 现任排行榜 Flawr - Matlab - 22 - Confirmed Falko - Python 2 - 41 - Confirmed Wyldstallyns - NetLogo - 51 - Confirmed Ssdecontrol - R - 66 - Confirmed David - Mathematica - 95 - Confirmed ILoveQBasic - …
26 code-golf 

22
找到第N对双素数
如果两个质数相差两个,则被定义为双质数。例如,3和5是双素数,29和31也是双素数。 编写一个程序,查找第n对孪生素数(其中n来自STDIN)并将其打印在STDOUT上,并用逗号和空格分隔。这是代码高尔夫球,因此最短的代码获胜。 输入样例: 3 样本输出: 11, 13
26 code-golf 

12
打印黄金分割率
真有趣!但是,只有三位数,乐趣还为时过早。这个挑战是相似的,但我们会继续保持乐趣。 挑战 尽可能多地打印黄金比例 φ的数字。黄金比率定义为满足φ=(φ+ 1)/φ的数字,并且前100位数字由下式给出: 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375 ... 这个挑战不是关于计算φ!这是关于尽可能多地打印数字,而无需使用任何方法进行两次打印。因此,请找到尽可能多的创造性方法来获取数字! 限制条件 就其本身而言,打印φ的数字有点太简单了,因此规则如下: 您必须按从左到右的顺序构造数字,方法是逐段打印,也可以从左至右构造一个字符串,最后打印它-您甚至可以生成一个数字字符数组,然后将其连接起来并打印它,只要您按顺序进行即可。在以下规则中,“打印”和“输出”可能是指那些过程中的任何一个(例如,如果您正在构建字符串,并且该字符串包含已被1.6视为1.6已打印的字符串)。 对于您的代码,每位预算为15个字符。该期间不计入该预算,但也必须打印出来。请注意,该限制仅针对总代码大小:您可以对任何数字使用超过15个字符,只要您平均不使用更多字符即可。实际上,您可能会在字符中累积一个“债务”,并在以后“偿还”。例如,要打印,1.618您有60个字符。 标准库包含/导入不计入代码大小。但是您不能免费给这些包含速记别名的东西! 您不得使用当前正在生成的数字,也不得使用任何已打印的数字。例如1,在源代码中可能没有出现,因为它是第一位。输出8in 的代码1.618可以使用任何或所有数字[0234579],但不使用任何数字[168]。为此,将所有等同于单个数字的文字视为该数字。因此,如果您的语言可以表示9,'\t'那么您将不能在任何地方使用该语言,9而不能使用它。 您不能一次产生多个数字。应该有可能将您的代码清楚地分成几块,一次生成一个数字。 您不得引用在生成较早数字的代码中使用的任何内置函数,数学/布尔值/按位/字符串运算符,变量或常量。整数到字符串的转换,字符串连接和打印功能可能是例外,您可能需要为每个数字输入。请注意,您使用哪个名称来指代任何内置都没关系:仅仅因为您PI为两者都内置了别名p,q并不意味着您可以p一次使用q一次。同样,如果名称引用了两个不同的内置名称(例如string 和array),则允许您使用两次名称。lengthlength 如果您的编程语言没有函数,请根据其最佳判断(例如bash脚本编写),调用其他程序应遵循对函数施加的规则 您的提交必须以单一语言编写。因此,也无需执行另一种语言的解释程序来访问该语言的内置程序。 含义 上述规则隐含了以下几点,但我在此处添加它们是为了避免沙箱中已经出现的问题: 您不能通过'\b'在两者之间打印一些退格键(通常是)来覆盖部分输出。 禁止产生/输出多个数字的循环。(不过,计算一位数字的循环就可以了。) (1 + √5)/2禁止使用混淆版本或将斐波那契数除以获取多个位数。 您无法预先计算10位数字并将它们存储在10个变量中,然后再引用它们,因为那些变量引用不会生成数字-填充变量的代码会生成数字,因此这违反了规则6。 实际上,您不能重复使用任何先前的(或中间结果),因为这将意味着两位数字将共享要生成的代码。 否则,您可以使用任何方式(不必完全是数学方法)来生成数字。(你应该!) 实际上,如果您可以使用标准库从许多不同的地方提取正确的数字,则无需进行任何计算。 在生成一个数字时,您可能会多次使用运算符,因此生成第一个数字2+2+2很公平6(尽管这不太可能是最短的)。 您可以随意使用任何文字,因为它们不是内置常量。因此,只要不必打印5,您就可以5在您的代码中随意添加。 您无法对输出进行硬编码,因为这将涉及使用要输出的数字。 简而言之:请勿使用任何方法来两次生成数字,也不要使用您当前正在输出或已经打印的数字。 如果您确实发现了漏洞,可以得到(准)无限的分数,请不要通过利用漏洞来破坏挑战,但请告诉我,我可以看看漏洞是否可以解决而不会破坏任何东西。 计分 正确打印最高位数的程序将获胜。如果是平局,则较短的代码会打破平局。 请添加未注释的注释版本,以标识代码的哪个部分生成哪个数字。 PS:如果有人击败了上面的100位数字,这里还有更多。

4
微型伪造
正如任何业余摄影师可以告诉您的那样,极端的后期处理总是很好的。一种这样的技术称为“ 微型伪造 ”。 目的是使图像看起来像是其自身的微型玩具版本的照片。这对于从地面以中等/高角度拍摄的照片效果最佳,被摄体高度变化很小,但可以将其以不同的效果应用于其他图像。 挑战:拍摄照片并对其应用微型伪造算法。有很多方法可以做到这一点,但是出于这个挑战的目的,归结为: 选择性模糊 图像的某些部分应模糊以模拟较浅的景深。通常沿着线性或形状的某个梯度进行此操作。选择您喜欢的任何模糊/渐变算法,但是图像的15-85%之间必须具有“明显的”模糊。 饱和度提升 增强颜色,使事物看起来像是手工绘制的。与输入相比,输出的平均饱和度必须大于+ 5%。(使用HSV饱和度) 对比度提升 增加对比度以模拟更苛刻的照明条件(例如您看到的是室内/工作室照明而不是阳光)。与输入相比,输出的对比度必须大于+ 5%。(使用RMS算法) 必须实施这三个更改,并且不允许其他增强/更改。没有裁剪,锐化,白平衡调整,什么也没有。 输入是图像,可以从文件或内存中读取。您可以使用外部库来读写图像,但是不能使用它们来处理图像。为此也不允许提供函数(Image.blur()例如,您不能仅调用) 没有其他输入。处理强度,级别等必须由程序确定,而不是由人员确定。 输出可以以标准图像格式(PNG,BMP等)显示或保存为文件。 尝试概括。它不应该只在一个图像上工作,但是可以理解,它不能在所有图像上工作。无论算法多么出色,有些场景根本无法很好地响应此技术。在回答和对答案投票时,请在此处应用常识。 对于无效的输入以及无法满足规范的图像,行为是不确定的。例如,灰度图像不能饱和(没有基调),成像的纯白色不能增加对比度,等等。 在答案中至少包含两个输出图像: 必须从此保管箱文件夹中的图像之一生成一个。有六种可供选择,但我尝试使它们在不同程度上都可行。您可以在example-outputs子文件夹中看到每个示例输出。请注意,这些是直接从相机出来的完整10MP JPG图像,因此您需要处理很多像素。 另一个可以是您选择的任何图像。显然,请尝试选择可自由使用的图像。此外,包括原始图像或指向原始图像的链接以进行比较。 例如,从此图像: 您可能会输出如下内容: 作为参考,上面的示例在GIMP中进行处理,并使用了角形盒形渐变高斯模糊,饱和度+80,对比度+20。(我不知道GIMP使用了哪些单位) 要获得更多启发或更好地了解您要实现的目标,请访问此网站或该网站。您也可以搜索miniature faking和tilt shift photography获取示例。 这是一次人气竞赛。选民,请为您认为看起来最好的作品投票,同时忠实于目标。 澄清: 澄清哪些函数是不允许的,这并不是我禁止数学函数的意图。我的目的是禁止图像处理功能。是的,那里有些重叠,但是诸如FFT,卷积,矩阵数学等之类的东西在许多其他领域也很有用。你应该不被使用的功能,简单地拍摄图像和模糊。如果您找到合适的数学方法来创建模糊效果,那将是一场公平的比赛。

7
哪个更好-Emacs还是Vim?(谷歌打架)
问候,高贵的高尔夫球手。今天,您将解决最古老,最著名的辩论-Emacs还是Vim? 您面临的挑战是将两个搜索词作为输入,并输出其中哪个词具有最多的Google搜索结果。(这显然是完全公平的。您是什么意思,有偏见?) 以下是一些示例输入和输出: 输入:emacs和vim 输出:(vim在注释中完全不产生任何争论) 输入:google和microsoft 输出:google 输入:code golf stack exchange和code review stack exchange 输出:(code golf stack exchange是的!) 以下是一些有趣的例子(用于测试您的解决方案): 输入:About 1,000,000 results和About 100,000 results 输出:About 100,000 results 输入:This will autocotrect和Another testcase 输出:(Another testcase如果您不考虑自动更正,那么第一个将获胜) 对于以下测试用例,必须先删除#搜索词中的符号,因为它们依赖于具有特定数量结果的术语,并且在此处张贴该术语会破坏它们。 输入:Thissear#chter#mhasno#results和Another testcase 输出:(Another testcase仅测试零结果) 输入:"These exact wo#rds do#n't exi#st# on the Internet"和Another testcase 输出:(Another testcase测试") 输入:Abo#ut …

7
oke球模拟器
在《口袋妖怪》电子游戏中,玩家被派往世界,迫使野生动物变成小球,并训练它们战斗。当然,每个人都知道没有人在战斗中扮演口袋妖怪。该系列真正吸引人的是神奇宝贝!您的工作是在捕获尝试期间模拟the球。这项挑战将使用V代捕获公式,如下所示: HP_max等于目标宠物小精灵的最大生命值。HP_current等于目标宠物小精灵的当前生命值。rate是口袋妖怪的捕获率,bonus_ball是掷出的口袋妖怪的乘数,bonus_status如果目标口袋妖怪处于睡眠或冷冻状态,则为2.5;如果目标口袋妖怪瘫痪,中毒或燃烧,则为1.5;否则为1。 找到后a,您最多要执行三个“抖动检查”。摇动检查成功的概率为65536 / (255 / a)^(1/4)。如果这些检查中的任何一项失败,则口袋妖怪会逃脱其球。如果所有三个检查均成功,则将捕获口袋妖怪! 注意:无论何时执行除法运算,结果都将向下舍入为1/4096的倍数。通常,这是一个很小的细节,但是必须在程序中加以考虑。 您面临的挑战是编写一个程序来执行摇动检查并打印以标出检查状态。在stdin上,您的程序将(至少在下面的详细信息中)接收到宠物小精灵的最大生命值,目标宠物小精灵的捕获率以及宠物小精灵的名称。最大HP和捕获率均保证为整数,而pokeball的名称始终为字符串。只要输入是一致的,此输入就可以以任何顺序出现,并且可以使用任何定界字符。假设输入正确,则不需要错误处理。 这里列出了您需要支持的pokeball的名称及其捕获乘数: Poke | 1 Great | 1.5 Ultra | 2 Master | 255 您可以假设目标处于睡眠状态并且处于1 HP。输出的预期格式为: (First check failed) (no output) (Second check failed) *shake* (Third check failed) *shake* *shake* *shake* (All checks pass) *shake* *shake* *shake* Click! (这不是一个错字,您的程序永远不要只输出两次摇晃。) 这是code-golf,因此得分是程序源代码的字节数。最低分获胜。 奖金! 我说过,您可以假设宠物小精灵的生命值是1 …
26 code-golf 

4
9洞迷你高尔夫:文本处理
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 23天前关闭。 9洞迷你高尔夫球:说明 难度各不相同的9个(大多数情况下非常容易)代码高尔夫挑战 多次使用同一语言的处罚 有关特定主题的所有挑战(此主题:文本操作) 输入和输出可以是任何合理的位置(例如,STDIN和STDOUT,从文件中读取/写入文件,函数自变量和返回值等),但不得将其硬编码到程序中 受9孔挑战和文本机制的启发 孔洞 高尔夫球码袋 以两个字符串作为输入。 输出第一个字符串的字符数,而忽略第二个字符串中任何字符的出现。 示例:f("foobarbaz", "ao")=>5 打高尔夫球的前言 以两个字符串作为输入。 输出第一个字符串,每行以第二行为前缀。 示例:f("foo\nbar\nbaz", "a")=>"a foo\na bar\na baz" 标签与空间之战 将一个字符串s,一个数字n和一个布尔值b(根据需要指定)作为输入。 如果b为true,则输出s,每个制表符都转换为n空格。 否则,输出,s并将每个n空格都转换为制表符。 示例:f("if (x) {\n\tdoStuff();\n}", 4, true)=> "if (x) {\n[sp][sp][sp][sp]doStuff();\n}"([sp]表示空格) 高尔夫支柱 以字符串s,数字n和另一个数字m作为输入。每行 输出s一列,每列输出n一个m字符。 列之间也要有一个空格的填充。 示例:f("this is some placeholder text, foo …

17
在看起来没用的程序中写一行
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 编写一些程序(大小无关紧要),然后放置看起来无用的行,但实际上并不是这样-如果将其删除,程序将崩溃或做错事。随意标记注释中未使用的行,或在代码说明中提及它,如下面的示例(当然,在此示例中,实际上不需要该行,仅是示例)。 int main(void) { /* The line below is actually needed. */ 2 + 2; return 0; } 由于这是人气竞赛,因此票数最高的解决方案将获胜。

6
维基百科:哲学!
正如许多极客可能知道的那样,维基百科上的大多数页面(我认为其中的95%)最终都会导致这样的哲学: 单击第一个非斜体或括号链接,该链接指向另一篇普通文章:(即不是File:或Special :,但是类似Wikipedia:可以),然后重复该操作,直到您找到哲学。 该脚本必须: 以第一页为输入 打印获得的每篇文章的名称 并打印出多少篇有关哲学的文章,如果不是这样的话。 您从1000分开始,然后在代码中的每个字符上损失1分,对于以下情况,奖励分: 检测循环文章并停止:+50 检测正在循环播放的文章并询问用户是否应转到文章的下一个链接:+170 允许在前一个检查中使用命令行arg或类似参数作为默认值:+140 最高分获胜。

6
最短的普通超弦
给定一个字符串列表s_0, s_1, ..., s_n找到最短的字符串S,其中包含每s_0, s_1, ..., s_n一个字符串。 例子: S('LOREM', 'DOLOR', 'SED', 'DO', 'MAGNA', 'AD', 'DOLORE')='SEDOLOREMAGNAD' S('ABCDE', 'BCD', 'C')='ABCDE' 编写解决此问题的最短程序(或函数)。您可以根据需要将字符串表示为数组或字符/整数列表。标准库可以。对于输入/输出,可以使用更方便的方法:STDIN / STDOUT,用户提示,函数的参数/返回值等。 性能并不重要-假设,对于总长度<100个字符的输入,平均现代硬件上的结果必须在<10秒内计算出来。
26 code-golf  string 

30
计算文本中的单词并显示它们
该代码应输入一个文本(不是强制性的,可以是任何文件,stdin,JavaScript字符串等): This is a text and a number: 31. 输出中应包含单词及其出现次数,并按出现次数降序排列: a:2 and:1 is:1 number:1 This:1 text:1 31:1 请注意,31是一个单词,所以单词是任何字母数字,数字不充当分隔符,因此例如0xAF有资格成为单词。因此,分隔符将是非字母数字的任何内容,包括.(点)和-(连字符),i.e.否则pick-me-up将导致2个3个单词。应区分大小写,This并且this将是两个不同的词, '也将是如此隔膜wouldn,并t将会从2个不同的字wouldn't。 用您选择的语言编写最短的代码。 迄今为止最短的正确答案: grep和coreutils-42个字节
26 code-golf 

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.