编程拼图和代码高尔夫

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

30
回文您好,世界
您的任务是创建一个打印“ Greetings,Planet!”的程序。完全在控制台上。看起来很简单,对吧?好吧,这就是窍门。该代码必须是回文,这意味着它从右到左的读取方式与从左到右的读取方式相同。标准的漏洞是不是允许。

13
生成键盘友好号码
最常见的计算机键盘布局具有十进制数字键 1234567890 沿着字母键上方的顶部运行。 设一个十进制数字的邻域为它自己的数字键和左,右数字键(如果存在)的一组数字。 例如,0的邻域是{0, 9},5的邻域是{4, 5, 6}。 现在,将一个键盘友好数字定义为一个正整数(十进制形式,不带前导零),可以在上面的布局中键入该数字,以使第一个数字之后的数字中的每个连续数字都位于前一个数字的附近。 所有一位数字(1-9)都很容易键盘操作。 诸如22321这样的数字是键盘友好的,因为每个数字(不包括第一个数字)都在该数字的附近。 诸如1245之类的数字对键盘不友好,因为4不在2附近(反之亦然)。 诸如109之类的数字不适合键盘输入,因为0不在1附近。其末端不循环。 通过按最小到最大的顺序排列键盘友好数字,我们可以创建一个整数序列。 这是键盘友好数字序列的前200个术语: N KFN(N) 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 11 12 12 21 13 22 14 23 15 32 16 33 17 …

30
矮胖vs.平滑弦
考虑一个长度为N的字符串,例如Peanut ButterN =13。请注意,该字符串中有N-1对相邻字符。因为Peanut Butter,12对中的第一个是Pe,第二个是ea,最后一个是er。 当两对大多数是不同的字符时,字符串具有粗大的质量,例如chUnky。 当这些对几乎都是相同的字符时,字符串具有平滑的质量,例如sssmmsss。 将字符串的组块性定义为具有两个不同字符的线对数与线对总数(N-1)的比率。 将字符串的平滑度定义为具有两个相同字符的线对数与线对总数(N-1)的比率。 例如,Peanut Butter只有一对具有相同字符(tt)的对,因此其平滑度为1/12或0.0833,而其块状度为11/12或0.9167。 空字符串和仅包含一个字符的字符串被定义为100%平滑和0%厚实。 挑战 编写一个程序,该程序采用任意长度的字符串,并输出其块状或平滑度比率作为浮点值。 通过stdin或命令行获取输入,或者您可以编写一个带有字符串的函数。 您可以假设输入字符串仅包含可打印的ASCII字符(因此为单行)。 将浮点数输出到stdout到小数点后4位或更多位,或者如果编写了函数,则可以选择将其返回。不需要传达任何信息的小数位,例如0可以用代替0.0000。 根据需要选择块状或光滑度。只要确定您的程序输出哪个即可。 以字节为单位的最短代码获胜。 例子 Peanut Butter→粗0.91666666666度:,平滑度:0.08333333333 chUnky→粗1.0度:,平滑度:0.0 sssmmsss→粗0.28571428571度:,平滑度:0.71428571428 999→粗0.0度:,平滑度:1.0 AA→粗0.0度:,平滑度:1.0 Aa→粗1.0度:,平滑度:0.0 !→粗0.0度:,平滑度:1.0 [空字符串]→粗度:0.0,光滑度:1.0 奖金的问题:你更喜欢哪一个,矮胖或平滑的字符串?

30
1 / N的概率
因为没有足够的简单代码挑战,所以: 创建一个可选的未命名程序或函数,给定(通过任何方式)整数1≤N≤10000,以伪随机概率1 / N输出您语言的True值,否则为False。 请注意,命名要求已被删除。随意编辑答案和分数。 某些语言的True和False使用1(或-1)和0,也可以。 例: 输入测试示例: 4 -> True 4 -> False 4 -> False 4 -> False 4 -> False 4 -> True 4 -> False 4 -> False 即给出4;它会以25%的机会返回True,并以75%的机会返回False。

5
为冬季创建冰冷的头像图像
现在是冬天,一年中的时候开始变冷了(奇怪的彩色头巾开始出现……很快)。让我们写一些代码来冻结头像图片和其他图像,以适合主题! 输入值 提交给该挑战的信息的输入应该是一张图像(要冻结的图像)和一个数字(阈值,这将在后面说明)。 您可以使用您的语言支持的任何方式(例如,文件路径或URL作为参数,从剪贴板中获取,拖放图像等)以及此处列出的以RGB表示颜色的任何格式输入图像(您可以输入可以根据需要支持/要求RGBA,但这不是必需的)。 除了将数字硬编码到程序中(例如),您还可以用任何您想要的方式输入数字(命令行参数,STDIN,输入对话框等n=10)。如果为图像使用文件路径/ URL,则也必须以这种方式输入。 输出量 程序必须根据以下说明处理图像,然后以您想要的任何方式输出(到文件,在屏幕上显示,将其放在剪贴板等)。 描述 提交内容应按照以下三个步骤处理图像。n指程序接收到的与图像一起作为输入的数字。 应用半径的模糊n通过与平均R,G,和一个内的所有像素的B值替换每个像素的R,G和B值与输入图像的曼哈顿距离的n像素,忽略了界外的所有坐标。(即X差和Y差之和小于或等于的所有像素n。) (注意:我在上面的图像上使用了高斯模糊,因为它具有便捷的内置功能,因此您的图像可能看起来有些不同。) 将每个像素设置为像素距离内的随机像素n/2(“距离”的定义方法与上一步相同)。 这应通过遍历图像并将每个像素设置为该范围内的随机像素来完成,因此某些像素可能会完全消失,而某些像素可能会重复。 所有更改必须同时应用。换句话说,请使用像素的旧值(在步骤1之后但在此步骤之前),而不是在将它们设置为随机像素后使用新值。 将每个像素的“蓝色” RGB值乘以1.5,将其上限设置为255(或像素带的最大值),然后四舍五入。 规则 您可以使用语言内置的图像库/与图像处理相关的功能;但是,您不得使用任何功能执行描述中提到的三项主要任务之一。例如,您不能使用blur函数,但是getPixel函数很好。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

19
关于基本二进制文件
请原谅标题。 这是一个受82000的“好奇属性”启发的问题。在其中,作者指出数字82000在2、3、4和5的底数是二进制的。该帖子然后提出了一个问题:“在2、3、4、5和6的底数中是否有二进制数? “?(对于那些好奇的人,我检查了高达10 ^ 1,000,000的值,到目前为止,答案是否定的。) 这让我开始思考:给定一个数字,它的二进制基础是什么? 我们的奇数82000实际上是六个基数的二进制数: Base 2 = 10100000001010000 Base 3 = 11011111001 Base 4 = 110001100 Base 5 = 10111000 Base 81999 = 11 Base 82000 = 10 并非所有数字都具有连续的二进制基数。考虑数字8321。它是以2、17、289、83520和8351为基数的二进制数。 您面临的挑战是确定并显示数字的二进制基础。 规则 如果数字在给定基数中的表示形式仅由零和一组成,则该数字被视为“二进制”。 110110是二进制值,而12345不是,A380F则绝对不是。 您的电话号码将在标准输入中提供。它是2到2 ^ 32-1之间的整数值(包括2和32 ^ 32-1),并将以10为基数的格式提供。 以升序显示大于2的二进制数的每个基数。每个基数应位于其自己的行上。如果您在该基数中包含二进制值(请参阅下面的加分评分),请用空格分隔基数和二进制值。将仅判断输出到标准输出,将忽略标准误差和其他来源。 计分 您的分数是程序的大小(以字节为单位)。分数越低越好。 奖励: 如果您的程序还以找到的基数输出二进制值,则将分数乘以0.75。 显示的二进制值应该没有多余的标点符号,没有多余的零,没有小数点,只有零和一。 例子 输入: 82000 …

19
最短的唯一子字符串
输入值 一个字母数字字符串s。 输出量 与中的(连续)子字符串完全匹配一次的最短字符串s。重叠出现被视为不同。如果有多个相同长度的候选者,则必须按出现顺序输出所有候选者。在此挑战中,空字符串的出现n + 1时间为length字符串n。 例 考虑字符串 "asdfasdfd" 空字符串在其中出现10次,因此它不是唯一出现的候选对象。每个字母"a","s","d",和"f"至少出现了两次,所以它们不是候选人要么。子字符串"fa"和"fd"仅出现一次,并以该顺序出现,而其他所有长度为2的子字符串出现两次。因此正确的输出是 ["fa","fd"] 规则 允许使用功能和完整程序,而不允许出现标准漏洞。在合理范围内,输出的确切格式是灵活的。特别是,不允许为空字符串生成任何输出,但不允许抛出错误。最低字节数获胜。 测试用例 "" -> [""] "abcaa" -> ["b","c"] "rererere" -> ["ererer"] "asdfasdfd" -> ["fa","fd"] "ffffhhhhfffffhhhhhfffhhh" -> ["hffff","fffff","hhhhh","hfffh"] "asdfdfasddfdfaddsasadsasadsddsddfdsasdf" -> ["fas","fad","add","fds"] 排行榜 这是我所承诺的按语言排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes <script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>site = …
29 code-golf  string 

27
16位二进制网格
给定任何无符号的16位整数,请将其十进制形式(即,以10为基数)转换为其位的4x4 ASCII网格,其中最高有效位(MSB)在左上方,最低有效位(LSB)在右下,先阅读然后再向下阅读(如英文文本)。 例子 输入:4242 +---+---+---+---+ | | | | # | +---+---+---+---+ | | | | | +---+---+---+---+ | # | | | # | +---+---+---+---+ | | | # | | +---+---+---+---+ 输入:33825 +---+---+---+---+ | # | | | | +---+---+---+---+ | | # | | | +---+---+---+---+ | …

11
您可以看到多少座塔?
该问题基于数字放置拼图塔(也称为摩天大楼),您可以在网上玩。您的目标是解决难题并确定线索-沿每一行和每一列可见的塔数。这是代码高尔夫,所以最少的字节获胜。 塔如何运作 塔难题的解决方案是一个拉丁方-一个n*n网格,每一行和每一列都包含1贯穿的数字排列n。以下n=5是一个示例: 4 3 5 2 1 5 4 1 3 2 1 5 2 4 3 2 1 3 5 4 3 2 4 1 5 每行和每一列的两端都标有线索,例如: 2 3 1 4 5 v v v v v 2 > 4 3 5 2 1 < 3 1 > …
29 code-golf  grid 

30
两大不同-强盗
对于主要警察的挑战,请单击此处 注意 -此挑战现已结束。现在发布的任何裂缝都不会计入排行榜,接受的答案也不会改变。 挑战 给定原始程序,其输出以及更改后的程序的输出,您必须找出需要更改,删除或添加哪些字符才能获得预期的输出。 当您破解某人的代码时,请在其答案上留下评论并附带指向您的破解的链接。 格式化 # [<language>, <username of program owner>](<link to answer>) ## Description <description of change and how you found it> ## Code <changed code> 获奖 破解最多的人将获胜。 排行榜 13个裂缝: 丹尼斯 8个裂缝: 亚历克斯·范·刘 5个裂缝: Sp3000 伊萨格 3个裂缝: 路易斯·门多 吉米23013 唐·黑斯廷斯 2个裂缝: mbomb007 烂49 1个裂缝: 头号 雅库比 骄傲的哈斯克勒 …

6
隐藏的立体图消息
您必须根据包含文本段落,空行和隐藏消息的输入字符串生成文本立体图。结果将显示为一对段落,每个段落之间的间距不同,导致在立体观察时抬起效果(可以在此处找到说明)。 例 输入: I invented vegetarianism. It is a diet involving no meat, just vegetables. It is also common in cows - they are awesome. vegetarianism. is awesome. 输出: I invented I invented vegetarianism. vegetarianism. It is a diet It is a diet involving no involving no meat, just meat, …
29 code-golf 

12
单词搜索难题
给定一个矩形文本作为单词搜索难题和一个搜索字符串,请确定该文本是否包含搜索字符串。搜索字符串可能会出现: 水平,垂直或对角线 前进或后退 您可以编写一个函数或程序,并通过函数参数ARGV或STDIN接受两个字符串作为输入。输出应该是真实的或虚假的结果,可以从函数返回或写入STDOUT。 假定文本将包含任意可打印的ASCII字符(十六进制代码20至7E)和换行符。字母区分大小写。您可以假定输入文本为矩形,即所有行的长度均相同。您可以输入是否以尾随换行符结尾(如果对您的提交很重要)。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。 例子 使用维基百科关于单词搜索的文章中的此网格作为第一个输入: WVERTICALL ROOAFFLSAB ACRILIATOA NDODKONWDC DRKESOODDK OEEPZEGLIW MSIIHOAERA ALRKRRIRER KODIDEDRCD HELWSLEUTH 以下搜索字符串应分别产生真实或虚假结果: Truthy: RANDOM, VERTICAL, HORIZONTAL, WORDSEARCH, WIKIPEDIA, TAIL Falsy: WordSearch, CODEGOLF, UNICORN 或者,使用此输入文本 Lorem ipsum dolor sit amet consectetu r adipisicing elit sed do eiusmod tem por incididunt ut labore et dolore …

4
元正则表达式高尔夫
本着xkcd的精神 编写一个程序,使用任意对列表进行正则表达式高尔夫。该程序至少应尝试使正则表达式变短,/^(item1|item2|item3|item4)$/不允许仅输出或类似程序。 评分基于生成最短正则表达式的能力。测试清单是在这里找到成功和失败的美国总统候选人的清单(感谢@Peter)。当然,该程序必须适用于所有不连续的列表,因此仅返回总裁的答案就不算在内。

9
反golfscript反golf:创建一个任务,其中GolfScript或J被您的(常规)lang超越。
您需要做三件事: 一个任务,声明牛逼。 用通常不用于打高尔夫球的语言A解决任务。 用通常用于打高尔夫球的语言B解决任务。不要试图夸大B来提高得分,而要想像B是您的竞争对手写的。 使用常识来定义typically used for golfing,尝试为其他用户带来最大的乐趣。 其他用户可能会提出更好B的建议(可能包括其他“古怪”语言)。 得分(length_in_bytes(B)+5)/(length_in_bytes(A)+5)越高,越好。(也许应该更改得分公式?。) 主要思想是发明一项任务,使通常在代码高尔夫中表现良好的语言遇到问题。在给定任务中,可能是常用语言的突然强项,也可能是某些golflang的突然弱项。 避免使用提及特定编程语言的任务,例如Input a string and execute it as a Scheme code。

8
您在最大的房间吗?
介绍 您最近接受了Pretty Good Software Company的工作机会。您对办公室的大小很满意,但是您有吗最大的办公室?当您停下脚步时,仅盯着同事的办公室很难说清楚。解决这个问题的唯一方法是检查建筑物的蓝图。 你的任务 编写一个程序,脚本或功能,以制定建筑物的平面图并指出您的办公室是否最大。平面图很容易阅读,因为建筑物是n by n正方形。 输入将包含n + 1个 \n定界线。第一行的数字为n。接下来的n行将是建筑物的平面图。一个简单的示例输入: 6 ...... . . . .X . . . . . . . . ...... 平面图的规则如下: .(ASCII 46)将用于表示墙壁。(空格[ASCII 32])将用于表示开放空间。 您用X(ASCII 88)表示。你在办公室 平面图将是n行,每行包含n个字符。 建筑物四周四面都是墙。这意味着输入的第二行(平面布置图的第一行)和输入的最后一行均为.s。这也意味着每条平面图行的第一个和最后一个字符将是.s。 办公室的大小定义为相邻空间的总和(通过在四个方向(N,S,E,W上移动而无需穿过墙壁而连续))。 为了办公室的大小,代表您的X计为(开放空间) 4 <= n <= 80 您应该输出您的办公室是否严格大于其他所有办公室。输出可以是在您选择的编程语言中明确表示True或False并遵循零,null和空表示False的标准约定的任何内容。真实意味着您的办公室绝对是最大的。 以上输入的样本输出: 1 因为您的办公室是8平方英尺,而另一个办公室是4平方英尺。 I / O准则 …

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.