编程拼图和代码高尔夫

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

7
用您的CPU绘图
我见过一篇文章,其中学生使用网络流量在该国的IPv6图上绘制了他们的大学。[图片] 您的目标很简单,但是很难实现。在CPU图上绘制文本MAIL(因为它是一维图上可以读取的少数几个单词之一)。 它看起来应该像这样: 详细说明符合条件的内容: 该代码不需要跨平台(因此您不需要未知的API来处理)。 您可以在拥有的任何常规CPU使用率实用程序中捕获它。 该图在另一台计算机上看起来更糟:这次我相信您。 基本CPU使用率百分比必须是连续的,因此,如果生成随机波并突出显示类似于MAIL的内容,那显然是作弊行为。 您可以选择要使用的最大负载,但是必须足够大才能清楚地看到它。 您必须遵循示例的线性关系。(对于M来说,它是这样的:基本百分比,然后突然增加到指定的最大值,逐渐下降到较低的百分比,再回到最大值,然后突然下降到基本百分比。) 如果这难以理解,那么选民终将注意到。 有标准漏洞。也发布图片!
289 code-golf 

30
我需要一个程序,用户输入一个双精度数组,并且程序输出该数组排序
注意:自从我第一次在此处发布问题以来,对该问题进行了严格的编辑。规则已移至此处,在发布任何答案之前请仔细阅读它们以了解其目的。这是在代码查询类别中创建的第一个问题。 想象一下,在Stack Overflow上一个懒惰的用户问这个问题: 我需要一个程序,用户输入一个双精度数组,该程序输出已排序的数组。您能给我密码吗? 您如何创建一段代码来欺骗该用户?创建一段代码,这些代码对于没有经验的程序员似乎很有用,但实际上却毫无用处。 获胜者是最upvoted答案,但如果答案是不知何故没有资格(资格要求,检查标签Wiki描述代码曳)。如果在接受之后在投票数上击败了先前获得最高投票的答案,则新的最佳答案会被接受,而前一个答案将不被接受。如果是平局,我会在平局中任意选择获胜者,或者再等等。 没有代码的答案不符合条件。他们可能很有趣并且获得了一些投票,但是他们不会被接受。 规则可在标签说明中找到。 注意:这是一个代码询问问题。请不要认真对待问题和/或答案。更多信息在这里。

30
让它看起来像我在工作
通常,我发现自己正在运行需要花费大量时间才能运行的脚本或查询。我可以将该脚本保持打开状态,并享受一些无罪的拖延。 现在,如果我可以编写一个脚本,对于任何旁观者来说,上述脚本似乎都是上述脚本之一,但仅在外观上如何?我可以把它放到屏幕上,享受几天的小猫直播,然后再有人意识到,屏幕上所有复杂的琐事都与我的实际工作无关。 您的挑战是为我编写此脚本(是的,我很懒)。 一个好的答案将是: 使某些内容出现在屏幕上,好像脚本正在工作。“屏幕”可以是终端,浏览器等。 相当新颖(是的,我们都看过永无止境的进度条程序) 进行技术人员的粗略检查 一个错误的答案将是: 让我被解雇 重新整理90年代我们都转发过的东西 一个出色的答案可能是: 超越上面的错误要点之一(例如) 生存关键检查 * gasp *实际上可以做一些有用的事情或有助于我的工作 验收将基于票数,实际结果会带来加分。当我的屏幕(会议等)可见时,我实际上将在工作时运行这些脚本(Linux Mint 16)以确定检测。如果有人注意到它在伪造,那您就没钱了。如果有人评论我的努力程度,则+5奖金将为您投票。 在这种情况下,“有用”可以适用于任何编码器,但是如果您希望在老师绑定的苹果上获得更多的光彩,那么我是一个全栈的Webdev,他会根据我的标签大致上在代码中工作。 问题部分受到此启发。 结果 令人失望的是,我在这些条目上都没有收到任何评论。他们都很棒,所以你们都是我心中的赢家。但是,Loktar在远距离获得最多的选票,因此他从接受中获得+15的选票。恭喜!

30
我们对打高尔夫球并不陌生,您知道规则,我也是
编写最短的程序,打印出瑞克·阿斯特利(Rick Astley)的“ Never Gonna Give You Up”的全部歌词。 规则: 必须完全按照上面的pastebin *中的显示输出歌词。这是原始转储:http : //pastebin.com/raw/wwvdjvEj 不能依赖任何外部资源-所有歌词必须由代码生成/嵌入在代码中。 除非您在代码中包含完整的算法,否则不要使用现有的压缩算法(例如gzip / bzip2)。 使用任何语言,以最短的代码为准。 2012年6月1日更新: 对于包含非ASCII文本的解决方案,解决方案的大小将基于UTF-8编码以字节为单位。如果您使用无法在UTF-8中编码的代码点,则不会将您的解决方案视为有效。 更新,2012年6月7日: 谢谢大家的出色解决方案!明天下午我将接受最简短的回答。现在,彼得·泰勒(Peter Taylor)的GolfScript答案正在获胜,因此,如果您想击败他,就可以取得一些进步!:) * Pastebin中有一个错字(第46行,“知道”应为“已知”)。您可以决定是否复制它。

30
在Python中打高尔夫球的技巧
您使用Python打高尔夫球有哪些一般技巧?我正在寻找可以应用于代码高尔夫球问题的想法,并且这些想法至少也特定于Python(例如,“删除注释”不是答案)。 请为每个答案发布一个提示。
248 code-golf  python  tips 

30
以1kB的代码客观地绘制星夜
注意:安德斯·卡塞格(Anders Kaseorg)已被接受,以吸引人们注意他的出色答案,但挑战还没有结束!对于在不使用内置压缩的情况下获得最高分的任何人,该产品仍然提供400点奖励。 下图是386x320梵高《星夜》的png表示形式。 您的目标是以不超过1024字节的代码尽可能地重现此图像。出于此挑战的目的,图像的接近度通过RGB像素值的平方差来衡量,如下所述。 这是代码挑战。使用下面的验证脚本计算分数。最低分获胜。 您的代码必须遵守以下限制: 它必须是一个完整的程序 它必须以我的计算机上运行的以下验证脚本可以读取的格式输出图像。该脚本使用Python的PIL库,该库可以加载各种文件格式,包括png,jpg和bmp。 它必须是完全独立的,不输入任何文件,也不加载任何文件(允许导入的库除外) 如果您的语言或图书馆包含一个输出Starry Night的功能,则不允许您使用该功能。 它应该确定地运行,每次都产生相同的输出。 输出图像的尺寸必须为 386x320 为避免疑问:有效答案必须使用按照常规PPCG规则的编程语言。它必须是一个输出图像的程序,而不仅仅是图像文件。 某些提交本身可能是由代码生成的。如果是这种情况,请在您的答案中包括用于生成提交内容的代码,并说明其工作方式。以上限制仅适用于您提交的1kB图像生成程序;它们不适用于生成它的任何代码。 计分 要计算分数,请获取输出图像和上面的原始图像,并将RGB像素值转换为介于0到1之间的浮点数。像素的分数为 (orig_r-img_r)^2 +(orig_g-img_g)^2 + (orig_b-img_b)^2,即两个图像之间RGB空间中的平方距离。图像的分数是其像素分数的总和。 以下是执行此计算的Python脚本-如果有任何不一致或含糊之处,则最终分数是由在我的计算机上运行的该脚本计算出的分数。 请注意,分数是根据输出图像计算得出的,因此,如果使用有损格式会影响分数。 分数越低越好。原始“星夜”图像的分数为0。在天平上不太可能发生的平局中,票数最多的答案将决定获胜者。 奖金目标 因为答案是使用内置压缩的解决方案所主导,所以我为使用其他技术的答案授予了一系列赏金。下一个将获得400点奖励奖励,如果不使用内置压缩的答案在整体上排名。 先前获得的奖金奖励如下: nneonneo的答案获得了100分的赏金,因为它是当时得分最高,未使用内置压缩的答案。当时它的得分为4852.87分。值得一提的是2012rcampion,他勇敢地尝试使用基于Voronoi tesselation的方法击败nneonneo ,得分为5076分,而Sleafar的答案一直领先,直到接近尾声,他的得分为5052分,使用类似的方法Nneonneo。 Strawdog的入场奖励200点赏金。这是因为它是一种基于优化的策略,该策略在非内置压缩答案中处于领先地位,并持续了一周。它采用了令人印象深刻的巧妙方法,获得了4749.88分。 评分/验证脚本 以下Python脚本应与上图放置在相同的文件夹中(应命名ORIGINAL.png),并使用形式的命令运行python validate.py myImage.png。 from PIL import Image import sys orig = Image.open("ORIGINAL.png") img = Image.open(sys.argv[1]) if img.size …

30
将语言添加到多语言
这是一个答案链挑战,其中每个答案都基于前一个答案。我建议按“最旧”的顺序对线程进行排序,以确保帖子的发布顺序。 注意:这已经成为一个长期的挑战,发布新答案非常困难。这样,如果您想对潜在答案的特定部分提出建议,对可以添加的语言有想法等,现在有一个聊天室可用于应对这一挑战。如果您有任何要问或说的话,请随时加入! 任务 要提交的第n个程序必须以n种不同的语言运行;具体来说,是要提交的先前程序中添加的所有语言,以及另外一种。程序在以用于该问题答案的第一种语言运行时必须输出1,以第二种语言运行时必须输出2,依此类推。例如,第一个答案在Python 3中运行时可以显示1,第二个答案在Python 3中运行时可以输出1,而在JavaScript中运行时可以输出2。在这种情况下,第三个答案在使用Python 3时必须输出1,在JavaScript中运行时必须输出2,而在其他语言下运行时则必须输出3。 附加规则 您的程序必须在运行时不会出错或崩溃。警告(和其他stderr输出)是可以接受的,但是程序必须正常退出(例如,通过运行程序结尾或通过诸如exit执行正常程序终止的命令)。 输出必须仅是整数,但结尾的换行符可以。还允许其他不可避免的标准输出。示例:Befunge-93中的 解释程序名称和版本,Zephyr中打印字符串后的空格。某些语言提供了两种打印方法–带和不带尾部空格;在这种情况下,必须使用没有尾随空格的方法。 每个答案的长度不得超过前一个答案的20%或20个字节(以较大者为准)。(这是为了防止使用诸如Lenguage之类的语言来增加垃圾邮件的数量,并鼓励至少进行少量打高尔夫球。) 允许使用相同语言的不同版本(尽管显然它们必须打印不同的数字,所以您需要在多语言版本中放入版本检查)。但是,您可能无法使用返回语言版本号的语言功能。显然,重复完全相同的语言是不可能的(因为程序必须确定性地打印两个不同的数字之一)。 尽管在某些多语言竞赛中被禁止,但是诸如过度评论滥用之类的技巧在这里还是不错的。 您不必将先前的答案用作编写自己的指南(只要符合规范,就可以重写整个程序);但是,允许您的答案主要基于先前的答案,这可能是解决问题的最简单方法。 您不能连续提交两个答案。让其他人在两者之间发帖。该规则适用,直到满足胜利条件。 由于此挑战要求其他竞争对手以您使用的相同语言发布,因此您只能使用免费实施的语言(就像这是一场警察和强盗竞赛)。 在一种语言具有多个解释器的情况下,您可以为任何给定的语言选择任何解释器,只要要使用该语言成功运行的所有程序在该解释器中都可以。(换句话说,如果一个程序可以在多个口译员中工作,那么以后的职位可以选择其中一个口译员,而不是“锁定”特定语言翻译人员的职位。) 现在,此挑战使用了有关语言选择的新PPCG规则:即使语言比问题新,您也可以使用语言或语言解释器。但是,如果a)语言是为多语制而设计的,或者b)语言是受此问题启发的,则您不能使用比问题新的语言/解释器。(因此,新设计的实用编程语言几乎可以肯定会被接受,无关的esolangs也会被接受,但是像A Pear Tree这样的问题就被禁止了。)请注意,这不会改变所设计语言的有效性。比这个问题更古老的 请注意,胜利条件(请参阅下文)的设计是为了打破连锁关系(即,使其他人无法通过使用难以与其他语言混用的语言在您之后回答)将使您失去获胜的资格。我们的目标是继续努力,如果您想赢得胜利,就必须尊重这一点。 答案格式 由于所有答案彼此依赖,因此具有一致的答案格式将很有帮助。我建议格式化您的答案,如下所示(这是链中第二个链接的示例): 2. JavaScript,40个字节 (program goes here) 该程序在Python 3中打印1,在JavaScript中打印2。 (如果您要解释程序,多色融合技术等,请在此处放置) 胜利条件 一旦有14天没有新的答案,获胜者将是发布第二新答案的人,即被证明没有破坏链条的最大的多语种。不过,仍然很欢迎在那之后延长连锁! 获胜者是机会,请参阅答案194(TemplAt)。 语言清单 显示代码段 // This snippet is based on the snippet from hello world thread https://codegolf.stackexchange.com/questions/55422/hello-world …

30
生存游戏-创建狼
董事会 该板是单元的二维阵列。细胞由动物组成。每天,董事会中的所有动物都同时采取行动。如果两个或多个动物移到同一牢房,它们会战斗直到剩下一个。可能的移动和攻击如下: 移动 - { Move.UP,Move.RIGHT,Move.DOWN,Move.LEFT,Move.HOLD} 攻击 - { Attack.ROCK,Attack.PAPER,Attack.SCISSORS,Attack.SUICIDE} 动物通过玩剪刀石头布进行战斗。标准规则适用,但有两个修改。首先,您可以随时自杀。第二,领带被随机打破。如果有两个以上的动物相撞,则将随机选择两个动物进行战斗,直到剩下一个。 玩家们 动物的行为和外观如下。 狮子 由人物代表L。移动DOWN,RIGHT,然后重复。用PAPER或伪随机攻击SCISSORS。 熊 由人物代表B。移动DOWNx 4,RIGHTx 4,UPx 4,LEFTx 4,然后重复。攻击PAPER。 石 由人物代表S。动作HOLD。攻击ROCK。 狼 仅包括作为答案提交的狼。以“ W”表示。随动而动。任意进攻 您将通过填写以下模板中的空白来实现Wolf。所有提交都必须使用Java,并且必须包含在一个文件中。另外,@ ProgrammerDan编写了一个包装器类,将竞争范围扩展到非Java提交。 // Optional code here public class Wolf extends Animal { // Optional code here public Wolf() { super('W'); /* Optional code here …

30
不使用数字,就可以获得最高的薪水。但是不要夸张!
当我申请某些职位广告中没有说明薪水的工作时,我想到一个特别邪恶的面试官,这将使候选人有可能通过“打高尔夫球”来决定自己的薪水! 因此,它就像这样: 在不使用数字的情况下,编写代码以输出您希望提供的年薪。 但是,能够编写简洁的代码是该公司的基石。因此,他们实施了非常严格的资历阶梯 编写b字节长的代码的雇主最多可赚取($ 1'000'000)· b -0.75。 我们正在查看(这些是整数部分,仅出于显示原因): 1 byte → $1'000'000 15 bytes → $131'199 2 bytes → $594'603 20 bytes → $105'737 3 bytes → $438'691 30 bytes → $78'011 4 bytes → $353'553 40 bytes → $62'871 10 bytes → $177'827 50 bytes → $53'182 挑战 …

30
“ Hello World!”的演变
该竞赛正式结束,获胜者是jimmy23013。恭喜你! 面临的挑战是制作一个可以打印Hello World!到标准输出的程序。值得注意的是,在您提交的答案中,您的程序与程序之间的Levenshtein距离必须为7或更小。 这将如何工作 下面,我已经使用Python提交了第一个答案:print("Hello World!")。 下一位要回答的人必须print("Hello World!")使用最多7个单字符插入,删除或替换来修改字符串,以便以迄今尚未使用的任何语言(在这种情况下仅使用Python)运行该字符串时,输出仍然是Hello World!。 例如第二回答者可以使用1个取代(r -> u),2个缺失(in),和1个插入(s),以使串puts("Hello World!")它打印Hello World!在红宝石运行时。 回答的第三人必须用一种新语言做同样的事情,但要以第二人的回答程序(例如puts("Hello World!"))为出发点。第四个答案与第三个答案有关,依此类推。 这将一直持续到所有人陷入困境,因为没有新语言时,只需更改7个字符就可以运行最后一个答案的程序。共同的目标是看我们能保持多长时间,因此,请不要进行任何晦涩或不必要的字符编辑(但这不是必需的)。 格式化 请按以下格式设置您的信息: #Answer N - [language] [code] [notes, explanation, observations, whatever] 其中N是答案编号(递增,N = 1、2、3,...)。 您不必知道更改了哪些确切字符。只要确保Levenshtein距离是0到7。 规则 了解这一挑战的关键在于,一次只能一个人回答,每个答案取决于之前的回答。 永远不会有两个答案使用相同的N。如果两个人碰巧同时回答某个N,则稍后回答的那个人(即使相差几秒钟)也应该宽容地删除他们的答案。 此外... 用户每8小时只能提交一个答案。即每个答案必须至少相隔8个小时。(这是为了防止用户不断观察问题并尽可能回答。) 用户不能连续提交两个答案。(例如,由于我提交了答案1,所以我不能回答2,但是我可以回答3。) 每个答案必须使用不同的编程语言。 同一语言的不同版本计为同一语言。 如果传统上使用两种不同的名称来称呼语言,则它们被视为不同的语言。(此处可能会有一些歧义,但不要让那毁了比赛。) 您只能使用制表符,换行符和可打印的ASCII。(换行符视为一个字符。) 输出应为Hello World!且不得包含其他字符(前导/后跟换行符不成问题)。 如果您的语言没有标准输出,请使用通常用于快速输出文本的任何内容(例如,console.log或alert在JavaScript中)。 请确保您的答案有效。我们不想意识到有五个答案会中断。无效的答案应迅速解决,或者在有其他答案之前将其删除。 除非绝对必要,否则不要编辑答案。 计分 一旦事情解决,提交最多(有效)答案的用户将获胜。领带最多的累积投票给用户。 页首横幅:(已过时) …

30
仅执行一次的代码
目标 这项挑战的目标是编写仅执行一次的代码。这基本上意味着它会以某种方式损坏程序,脚本或环境。如果重新引导系统,则允许代码再次运行。 计分 票数。所有假设必须清楚列出。仅启动重新启动或暂停的任何答案将被取消资格。 附加规则,因为格雷格·休吉尔(Greg Hewgill)是半神 不允许root访问。 结束日期 比赛将于2014年5月31日截止。 编辑 该比赛已更改为人气比赛。

30
打印程序没有的每个字符
您的任务是构建一个程序(仅使用可打印的ASCII字符和/或制表符和换行符),以完全打印出可打印的ASCII空间(0x20到0x7e)中未出现在程序源代码中的字符(以任何顺序排列)很多次)。 以任何语言执行此操作的最短代码都会胜出。

21
撤消炸弹!
您已被聘用为您的技术知识,是特工的助手,以确保好人能完成工作并拯救世界。 这是您退休前的最后一项任务,以高薪和全世界的感激之情退休。但是在您必须解除Evil Genius的Big Overly Massive BOMB的武装之前(似乎邪恶的Genius是精明的驴子,喜欢递归首字母缩写词)。无论如何,您和您的好友都在Evil Genius秘密基地的核心地带,随时准备解除可能摧毁整个大陆的BOMB的武装。在上一个任务中,您设法获得了使您感到惊讶的只是“ PASSWORD_01”的撤防代码。您将键盘连接到BOMB,但是当您准备出发时,Evil Genius的帮派们就以一连串子弹进入。不幸的是,这些项目符号之一会影响您的键盘。“完成工作,而我分散了这些麻烦!” 说你的伙伴,然后开始开枪。 眼镜 编写一个程序,以所需的任何方式输出字符串PASSWORD_01(大写)。 由于键盘已被子弹击中,因此只能使用以下键: 1 2 3 4 5 Q W E R T A S D F G < > Z X C Ctrl Shift Tab Space 使用Shift键,您的键盘允许您使用以下字符: ! " · $ % 除了键盘和屏幕(例如鼠标)之外,您没有任何其他硬件,也没有在计算机中写入密码的文件。 您没有互联网连接。 您可以假设在项目符号进入之前打开了解释程序外壳程序/源代码编辑器。可悲的是,您在敲击键盘之前还没有在其中编写任何内容。 您没有虚拟键盘。实际上,BOMB有一个TOO_FUNNY检测器,如果您尝试使用标准漏洞,它会爆炸。 由于您的伙伴正在等待您尽快完成逃离Secret Base的任务,因此您将必须编写最小的代码(因此,它是受限源代码和代码高尔夫!)。 祝您好运,因为倒计时已经开始! …

30
给您锦上添花!
使用您的选择,打高尔夫球的语言奎因。 甲喹是一个非空的计算机程序,其不采取任何输入,并产生它自己的源代码的副本作为其唯一的输出。 不作弊-这意味着您不能只读取源文件并打印它。同样,在许多语言中,空文件也是一个提包:也不被视为合法提包。 没有错误线索-错误线索已经存在一个单独的挑战。 要点: 最小代码(以字节为单位) 最混淆/模糊的解决方案 使用深奥/晦涩的语言 成功使用难以打高尔夫的语言 以下堆栈摘录可用于快速查看每种语言的当前分数,从而了解哪些语言具有现有答案以及您要击败的目标类型: 显示代码段 var QUESTION_ID=69; var OVERRIDE_USER=98; var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk";var answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;function answersUrl(index){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER} function commentUrl(index,answers){return"https://api.stackexchange.com/2.2/answers/"+answers.join(';')+"/comments?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER} function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(data){answers.push.apply(answers,data.items);answers_hash=[];answer_ids=[];data.items.forEach(function(a){a.comments=[];var id=+a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id]=a});if(!data.has_more)more_answers=!1;comment_page=1;getComments()}})} function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(data){data.items.forEach(function(c){if(c.owner.user_id===OVERRIDE_USER) answers_hash[c.post_id].comments.push(c)});if(data.has_more)getComments();else if(more_answers)getAnswers();else process()}})} getAnswers();var SCORE_REG=(function(){var headerTag=String.raw `h\d` var score=String.raw `\-?\d+\.?\d*` var normalText=String.raw `[^\n<>]*` var strikethrough=String.raw `<s>${normalText}</s>|<strike>${normalText}</strike>|<del>${normalText}</del>` var noDigitText=String.raw `[^\n\d<>]*` var htmlTag=String.raw `<[^\n<>]+>` return …
204 code-golf  quine 


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.