Questions tagged «code-golf»

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

2
打印ASCII体素
编写一个程序,读取n×n×nn×n×nn\times n \times n它代表一个二进制值的阵列n×n×nn×n×nn\times n \times n立方体,即由n3n3n^3小立方体。每个值表示在给定位置上是否存在体素(小立方体)。程序必须将给定的数组输出为ASCII图形(这意味着通过控制台输出或写入文件)。 例子 让我们考虑以下2×2×22×2×22\times 2\times 2数组: [ [[0,0], [1,0]] [[1,1], [1,0]], ] [ [[0,0], [0,0]] [[1,1], [1,1]], ] 在这种情况下,输出应如下所示(此处看起来不如在垂直空间较小的代码编辑器/控制台中那样好): +----+ / /|-+----+ +----+ | /| | | +----+ | | | | | + + + | |/ | | +----+ | |/ +----+ +----+----+ …

4
画一个阿波罗垫片
给定三个相互切线的圆,我们总是可以找到另外两个与这三个圆都切线的圆。这两个被称为阿波罗圈。请注意,Apollonian圆之一实际上可能在三个初始圆周围。 从三个切圆开始,我们可以通过以下过程创建一个称为Apollonian垫片的分形: 将最初的3个圈子称为父圈子 找到父圈子的两个阿波罗圈 对于每个阿波罗圈: 对于三对父圆中的每对: 将Apollonian圈子和两个父圈子称为新的父圈子集,然后从步骤2重新开始。 例如从相等大小的圆圈开始,我们得到: 在Wikipedia上找到的图片 我们还需要一点符号。如果我们有一个半径为r且中心为(x,y)的圆,则可以将其曲率定义为k =±1 / r。通常,k为正,但是我们可以使用负k表示将垫圈中所有其他圆包围起来的圆(即所有切线从内部接触该圆)。然后,我们可以指定一个三元组的圆:(k,x * k,y * k)。 出于这个问题的目的,我们将假设正整数k以及有理数x和y。 有关此类圈子的更多示例,请参见Wikipedia文章。 在这篇文章中,还有一些关于整体垫圈的有趣的东西(以及其他有趣的东西)。 挑战 系统会为您提供4个圆的规格,每个规格看起来都像(14, 28/35, -112/105)。您可以使用任何方便的列表格式和除法运算符,以便在需要时可以简单地eval输入。您可以假设这四个圆确实彼此相切,并且第一个圆具有负曲率。这意味着您已经获得了其他三个周围的阿波罗圈。有关有效示例输入的列表,请参阅挑战的底部。 编写一个程序或函数,在给出此输入的情况下,绘制一个Apollonian垫片。 您可以通过函数参数ARGV或STDIN进行输入,然后将分形呈现在屏幕上或以您选择的格式将其写入图像文件。 如果对生成的图像进行光栅化,则其每侧必须至少为400像素,并且最大圆周围的填充不足20%。当您到达半径小于最大输入圆的400的圆或小于像素的圆时,以先发生的为准,您可能会停止递归。 您只能绘制圆形轮廓,而不能绘制完整的光盘,但是可以选择背景和线条的颜色。轮廓不得大于外圆直径的200。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 输入示例 这是维基百科文章中所有转换为规定输入格式的整体垫片: [[-1, 0, 0], [2, 1, 0], [2, -1, 0], [3, 0, 2]] [[-2, 0, 0], [3, 1/2, 0], [6, …

8
激流独木舟
您正在划一条独木舟在一条相当快的激流河上。突然,您的船桨爆炸了,您发现自己处在危险的境地,没有任何船桨,使河流急速驶下。幸运的是,您仍然具有编程技能,因此您决定在独木舟旁边雕刻一个程序,以帮助您在急流中生存。但是,独木舟侧面没有太多的表面可用来编写程序,因此您必须使程序尽可能短。 河流可以表示为8 x 16的网格。我们将在列上标记数字0为7,在行上标记数字0为15。 y --------15 --------14 --------13 --------12 --------11 --------10 --------9 --------8 --------7 --------6 --------5 --------4 --------3 --------2 --------1 --------0 01234567 x 上图:一条完全平静,普通的河流,没有障碍物。自然,这不是您要走的河。 您从坐标(4,0)开始,然后从那里不受控制地向河上移动(即向量 (0,1)),直到撞到一块岩石(o在这些示例中以表示)。当您撞到一块岩石时,您将有55%的机会越过岩石的左侧(即vector (-1,1)),而有45%的机会就越过岩石的右侧(即vector (1,1))。如果独木舟位于最左边或最右边的列上,它将始终向中心移动。如果没有岩石,它将直接向上移动。 y ----x---15 ----xo--14 -o--x---13 ----x---12 ---ox---11 ---x----10 ---xo---9 ---ox---8 ----xo--7 -----x--6 ----ox--5 -o--x---4 ----x---3 ----xo--2 ----x---1 ----x---0 01234567 上图:用字符表示的独木舟可能走的路线 x 给定河流的地图,编写一个程序,将输出在给定列上划独木舟的可能性。 以适合您程序的任何一种方法接受输入(例如STDIN,命令行参数, …

30
打印ASCII表
任务是显示ASCII表的n个字符。 您可以编写一个带有参数n的函数(或将参数作为参数的程序,也允许使用STDIN),该参数将是要打印的最后一个字符的索引。 任务非常简单,因此举个例子,这里是Python 2.7的可能实现: (lambda n:map(chr, range(n)))(256) 正如我所说的,这是一个简单的任务。所以这是代码高尔夫球,最短的代码获胜! 编辑 正如您中某些人指出的那样,该代码不会打印结果。这只是一个例子,因为我可能很难用英语解释问题;-)。 编辑2 可以用任何编程语言随意发布答案,即使它不是最短的代码。也许那里有一些有趣的实现! 编辑3 修复了示例,以便打印结果。
28 code-golf 

5
政府墙壁供应有限
介绍 知识渊博的高尔夫球手为我们准备了世界末日的洪水。撤离有危险的地区,人口转移到高地。 我们低估了洪水(或者@ user12345的代码中存在错误)。一些高地地区正在迅速接近海平面。必须竖起墙壁,以确保现在人口稠密的营地的生存。可悲的是,政府的隔离墙供应有限。 问题 我们的世界末日场景由一行中的两个数字n和来描述m。在该行之后是每行n具有m值的行,仅用一个空格分隔。每个值将是四个字符之一。 x不可逾越。水不能在这里流动。不能在这里筑墙。 -不稳定 水可以在这里流过。不能在这里筑墙。 .稳定。水可以流过这里。可以在这里竖起墙壁。 o营地。水可以流过这里。如果是这样,每个人都会死亡。在这里不能建墙。 水将从地图的所有边缘流出,除非该边缘无法通行或在瓷砖上建了墙。编写一个程序,该程序可以输出保护营地所需的最小墙数。 输入示例 6 7 x . . x x x x x . . x - - x x . x x - - x x . o o o - . x . o o o - . …
28 code-golf 

19
飞跃秒!
由于今天标志着有史以来第26个leap秒的发生,因此您的挑战将是输出迄今为止已发生的GMT或UTC中每leap秒的日期和时间。 输入值 没有输入。 输出量 1972-06-30 23:59:60 1972-12-31 23:59:60 1973-12-31 23:59:60 1974-12-31 23:59:60 1975-12-31 23:59:60 1976-12-31 23:59:60 1977-12-31 23:59:60 1978-12-31 23:59:60 1979-12-31 23:59:60 1981-06-30 23:59:60 1982-06-30 23:59:60 1983-06-30 23:59:60 1985-06-30 23:59:60 1987-12-31 23:59:60 1989-12-31 23:59:60 1990-12-31 23:59:60 1992-06-30 23:59:60 1993-06-30 23:59:60 1994-06-30 23:59:60 1995-12-31 23:59:60 1997-06-30 23:59:60 1998-12-31 23:59:60 2005-12-31 23:59:60 …

12
告诉我动作
杰克和简决定在下班前下棋。不幸的是,杰克很不擅长可视化。他发现很难找到除了典当之外的给定部件可能的移动! 您的挑战是帮助杰克找到给定棋子(典当除外)的可能选项。 万一忘记了,各个部分用以下符号表示: K:国王 问:女王 N:骑士 B:主教 R:白嘴鸦 作为一个例子,下面的图像中的奈特位于d4和能够移动到c2,b3,b5,c6,e6,f5,f3,e2。对于给定的输入: Nd4 您将产生: Nc2 Nb3 Nb5 Nc6 Ne6 Nf5 Nf3 Ne2 规则: 只要列出了所有可能的动作,输出的顺序就无关紧要 可能的动作可以用空格,换行符或任何其他定界符分隔 输入可以作为参数传递给程序,也可以通过 STDIN 程序中的空格应计算在内,因此请充分利用它 这是代码高尔夫。(请避免使用专门为此目的设计的任何工具/实用程序。)答案最短者为准!
28 code-golf  chess 

29
编写您喜欢的短语
选择一个正好5个字长的引号或词组,例如Programming puzzles and code golf!。 编写一个程序,将其附加n次后,依次输出该短语的前n + 1个单词。 例如,如果您的程序代码为,MYPROG而短语为Programming puzzles and code golf!,则正在运行... MYPROG 应该输出 Programming MYPROGMYPROG 应该输出 Programming puzzles MYPROGMYPROGMYPROG 应该输出 Programming puzzles and MYPROGMYPROGMYPROGMYPROG 应该输出 Programming puzzles and code MYPROGMYPROGMYPROGMYPROGMYPROG 应该输出 Programming puzzles and code golf! 超过4次是不确定的,您的程序可以执行任何操作。 规则 您的短语必须是语法有意义的英语。理想情况下,应适当大写并标点符号。 你的短语可以是任意长度,但它的熵,通过计算公式http://www.shannonentropy.netmark.pl/,可能不小于3.5。 (粘贴您的短语,点击“ 计算”并寻找最后一个H(X)。) 您的词组只能包含可打印的ASCII字符(20到7E十六进制)。您的代码只能包含可打印的ASCII以及制表符和换行符。 您的词组必须恰好包含5个唯一词和4个空格。所有非空格都算作单词的一部分。空格是单词边界。他们可能不在前面或后面;除了最后的话,应该还有一个。 输出也应在单词之间包含一个空格。每个附加步骤的输出可能包含尾随空格,但不包含前导空格。 输出到标准输出。没有输入。 计分 分数是初始未附加程序的字节长度。(例如,MYPROG得分6) …

18
浮动部落
介绍 雨终于平息了。由于@ user12345的代码中的错误,大多数人淹死了。幸存者散布在世界各地的群岛上。无线电通信已经普及,人类有望再次蓬勃发展。僵尸海盗无缘无故聚集在本初子午线,并向西蔓延。部落吞噬了所有人。 问题 我们的世界末日场景可以用5个整数表示,这些整数代表一组协作的岛屿社区。它们从西(最左边的整数)到东(最右边的整数)排序​​。 从最东端的岛屿开始,岛民成对逃往下一个最近的岛屿。奇怪的是,对于每一对登船的人,只有其中一个能幸免于难。岛民只能成对旅行。奇怪的人群选出一个唯一的居民留下来,并提供有关僵尸海盗部落滑稽动作的最新广播更新。人口拒绝旅行,直到其东部所有岛屿完成迁徙或死亡为止。当人口到达最后一个最西端的岛屿时,旅行便停止了。 世界末日的运营经理需要一个程序,该程序可以输出每个村庄的最终人口数。 输入示例 3 8 6 0 2 示例输出 8 1 0 1 0 假设条件 输入可以通过stdin提供,可以从任意命名的文件中读取,也可以作为参数接受 对于每个岛屿,0 <=人口<= 1024 人口从未逃过一个小岛 最短答案胜出!
28 code-golf 

12
蠕虫的生命
条款 一个蠕虫是负整数的任何名单,以及其最右边(即最后一个)元素称为头。如果头部不为0,则蠕虫的活动段由最长的连续元素块组成,该元素块包括头部,并且其所有元素至少与头部一样大。在简约有效段是主动段与由1。例如递减的头,所述蜗杆3 1 2 3 2具有活性片段2 3 2,以及减少的活性段2 3 1。 进化规则 蠕虫逐步演化如下: 在步骤t(= 1,2,3,...)中, 如果头为0:删除头, 否则:用缩减的活动段的t + 1级联副本替换活动段。 事实:任何蠕虫最终都会演变成空列表,而这样做的步骤就是蠕虫的生存期。 (有关详细信息,请参阅LD Beklemishev撰写的《蠕虫原理》。“列表”是指有限序列,“头”是指最后一个元素的用法,摘自本文—请勿混淆)并将列表作为抽象数据类型常用,其中head通常表示第一个元素。) 示例(括号中的活动部分) 蠕虫:0,1 step worm 0(1) 1 0 0 0 2 0 0 3 0 4 <- lifetime = 4 蠕虫:1,0 step worm 1 0 1 (1) 2 0 0 …

29
最少的代码CPU压力测试仪…
介绍 有许多实用程序可以创建高CPU负载,以对您的处理器进行压力测试。在Microsoft Windows上,您甚至可以使用板载calculator.exe,输入,如999999999,然后按n!几次以使您的CPU超时工作。 但是,如果您自己没有创建解决方案,那该怎么办? 使命 您的任务(如果选择接受)是创建地球上最小的CPU压力测试工具。 必须… 必须产生100%的CPU负载,直到中止 必须输入一个数字输入,代表压力测试应运行的秒数 必须允许用户交互(按键,关闭终端窗口或类似的东西),这应使用户能够中止压力测试和/或退出程序 必须针对Microsoft Windows,Mac OSx和/或Linux。 (即使仓鼠也可能会对Comodore64产生压力,因此,您必须针对当前的操作系统。) 一定不… 不得使用可替代预期功能的第三方程序或工具。 (提议捷径之类system('cpuStressThing.exe')的提议会使您的提议失去资格。) 可以… 可以使用任何方法/算法/功能来产生预期的100%CPU负载 可以使用任何编程或脚本语言 (只要它允许通过运行对其功能进行实际验证) 获奖条件 展示可能的最小源代码。获奖者是提供符合上述“必须”和“不得”条件的最小(大小)源代码的人。现在,让那个婴儿烧伤... 编辑 由于问题出现在注释区域中,因此您只需要指定1个CPU内核即可。我绝对不希望您提供多核解决方案。毕竟,这应该很有趣–不起作用。
28 code-golf 

12
***风景***
目标:编写一个程序,以生成美丽的(?)ASCII艺术风景和天际线! 您的程序只有一个输入:一个由char的任意组合/重复组成的字符串0123456789abc。 对于每个输入字符,输出如下垂直线: . .. ... oooo ooooo OOOOOO OOOOOOO XXXXXXXX XXXXXXXXX XXXXXXXXXX 0123456789 字母abc后跟一个数字n,并在底部绘制垂直线n,分别具有1,2或3个孔(空格)。 例子 克莱斯勒大厦 输入:2479742 . . ... ooo ooo OOOOO OOOOO XXXXXXX XXXXXXX XXXXXXX 泰姬陵 输入:0804023324554233204080 . . . . o o o oo o O O OOOO O O O O OO OOOO OO O …

8
庞码中最短的
挑战很简单。给出尽可能短的代码,以重现pong的经典2人游戏http://en.wikipedia.org/wiki/Pong。图形和功能级别应尽可能接近此javascript演示http://codeincomplete.com/posts/2011/5/14/javascript_pong/demo.html(但如果没有其他选项,您可以单击左侧的或右下角的帧,fps等信息)。 与往常一样,代码必须以一种自由的语言编写(在两种意义上),并且可以在linux上运行。使用的任何库也必须是免费的,易于使用的,并且不能为比赛目的而编写(并且还没有包含Pong!的工作版本)。

6
选择高尔夫语言[关闭]
选择正确的高尔夫语言有哪些技巧?哪些因素影响选择的语言? 以下是一些示例问题类型: 需要I / O解决方案(控制台或文件)的问题 需要解析的问题 需要您将解决方案作为函数定义编写的问题 数学问题 处理质数时出现问题 解决数字难题 执行数值方法 字符串处理 数组处理 棘手的2D阵列问题 计算几何 递归 2D图形 3D图形 音讯 网络/网络 并行处理 不要仅仅因为喜欢而说“ Use GolfScript | J”之类的话。
28 code-golf  tips 

30
转置一页文字
编辑我修改了规则的措词,使一些隐含的内容更加明确。我还强调了一些明显的混淆,并明确定义了制作独立程序而不是函数的选项。 这里的目标是创建一个接受文本文件(或字符串)并对其进行转置的函数,以使行成为列,反之亦然。 例: 我是文字。 转置我。 你可以做到吗? 结果是: 国贸中心 拉 an mn sy 载脂蛋白 OU ts 杂草 o Tm值 .ei .t ? 规则: 您可以假定使用的唯一空格字符是" "并且"\n"在任何行上都没有尾随空格。 您可以假定文件是ASCII。您要使用哪个终端标记(CRLF或LF)。它必须在示例中正确运行,但也应在满足上述假设的任何输入下工作。 您可能必须在没有空格的地方插入空格(如示例中所示),以使列保持一致。 您的结果在任何行上都不能包含尾随空格。 最后的换行符(用于最后一行)是可选的。 它应该是一个功能或一个完整的程序。如果您的函数接受字符串,则它应该以字符串形式返回结果。如果它接受文件名,则返回保存结果的文件名。另外,您还可以编写一个完整的程序,该程序接受来自STDIN的输入并将正确的结果输出到STDOUT。如果这样做,则不得将任何内容输出到STDERR。 最短的程序胜出,但我会赞成我喜欢的任何答案。 根据规则,示例中的输出长度为53或52个字节(对于LF换行符),具体取决于是否包含最终换行符。 注意:这不是特定的要求,但是如果您的函数连续运行两次时与原始函数不同(最终的换行符可能会有所不同,并且文件末尾的任何空行都将被删除),那么您就是可能违反其中一项规则。
28 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.