Questions tagged «code-golf»

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

15
计算程序的字节数
注意2:我接受了@DigitalTrauma6字节长的答案。如果有人能击败我,我将更改接受的答案。感谢参与! 注意:我将在美国标准时间15/14/15下午6:00接受答复。感谢所有的参与! 对于尚未被问到这个问题,我感到非常惊讶(或者我搜索的不够努力)。无论哪种方式,这个挑战都非常简单: 输入:字符串形式的程序。此外,输入内容可能包含也可能不包含: 前导和尾随空格 尾随换行符 非ASCII字符 输出:两个整数,一个代表UTF-8字符计数,一个代表字节计数,您可以选择顺序。尾随换行符是允许的。输出可以是STDOUT或从函数返回。IT可以采用任何格式,只要两个数字可以区分即可(2327是无效输出)。 笔记: 您可以将换行符视为\n或\r\n。 这是一个用于测试的不错的字节和字符计数器。另外,这是一个具有相同内容的元帖子(感谢@Zereges)。 I / O示例:( 所有输出均为形式{characters} {bytes}) 输入: void p(int n){System.out.print(n+5);} 输出: 37 37 输入: (~R∊R∘.×R)/R←1↓ιR 输出: 17 27 输入: friends = ['john', 'pat', 'gary', 'michael'] for i, name in enumerate(friends): print "iteration {iteration} is {name}".format(iteration=i, name=name) 输出: 156 156 这是代码高尔夫球-以字节为单位的最短代码获胜! …

8
圆形蓝调
编写一个程序或函数,该程序或函数接受一个正整数N并重新创建按比例缩放以适合N×N像素图像的这种圆形图案: 该图像是N = 946的有效输出示例。 如果不清楚,则所有小的浅蓝色圆圈都具有相同的半径,并且以相同的方式位于四个深蓝色圆圈中。深蓝色圆圈的半径是该半径的两倍,并且类似地位于较大的浅蓝色圆圈中。 可以使用任何两种视觉上不同的颜色来代替两种蓝色。 背景方块确实需要着色。 抗锯齿是可选的。 将图像保存到文件,显示它或将原始图像数据通过管道传输到stdout。 允许使用任何常见的图像文件格式。 以字节为单位的最短代码获胜。 如果您将该圆形图案的递归方面扩展到其他级别,则布朗尼指向。(请与您的挑战条目保持区别。)

18
整数百分比
编写一个函数,该函数接受一个正整数列表,并返回一个整数列表,该整数列表近似于相同位置中相应整数的总百分比。 返回列表中的所有整数必须正好等于100。您可以假定传入的整数之和大于0。只要以百分比形式返回的任何单个结果整数,就可以舍入或截断小数在任一方向上的偏离不超过1。 p([1,0,2]) -> [33,0,67] or [34,0,66] p([1000,1000]) -> [50,50] p([1,1,2,4]) -> [12,12,25,51] or [13,12,25,50] or [12,13,25,50] or [12,12,26,50] p([0,0,0,5,0]) -> [0,0,0,100,0] 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

8
疯狂的图书管理员的惊人分类系统
回到学校了!因此,对于兼职工作,您正在学校的图书馆里帮忙。问题是,首席图书馆馆长甚至从未听过“杜威十进制”一词,更不用说实施该系统了。取而代之的是,随着库的扩展,正在使用的排序系统已经“有机地”增长了。 为了保持理智,您选择编写一个程序来帮助您归还书本,因为如果对书本进行错误的分类会给您带来麻烦。(首席图书馆员非常严格。) 输入输出 输入将是(假设的)书名列表,每行一个,来自STDIN /等效语言。 您一次最多只能输入100本书(您一次只能在图书馆中随身携带这么多书籍)。 书的标题中可以有多个单词,这些单词可以用空格或其他标点符号(例如,冒号:,破折号-等)分隔。 为了便于计算,假设所有标题均为UTF-8。 输出是相同的标题,根据以下规则排序,每行再一次,与STDOUT /语言等效。 排序规则 根据书籍的平均字符值(即,累积字符值除以书籍标题中的字符数)对书籍进行数字排序,并按以下规则计数: 所有字符都用于确定标题中的字符数。 小写字母按其在字母表中的位置计数。(a = 1,b = 2,... z = 26) 如果标题中包含大写字母,则它们的小写字母价值为1.5(A = 1.5,B = 3,... Z = 39)。(“大写字母很重要!”图书管理员说。) 该列表中的每个标点符号/符号在!@#$%^&*()-=_+[]\{}|;':",./<>?~取平均值之前均从累计值中计数为-1。(“华丽的标题不是!”) 如果标题中包含以阿拉伯数字表示的数字,则在排序之前从平均值中减去该数字。多个连续的数字被视为一个数字(例如,42将减去42,而不是减去4,然后再减去2)。单个数字不计入累计值(即,每个数字贡献0),但DO计入字符数。请注意,这可能会导致负值,应适当对待。(有传言,图书馆员迷恋数学老师已有好几年了。) 如果书名包含两个以开头的单独单词R,则该书的得分为“无穷大”,并被丢到角落的一堆书中(即,随机排列在列表的末尾)。(图书馆员曾经被一个带有这些缩写的人丢弃,或者您已经听说过。) 空格不计入字符的累积值(即,它们贡献0),但确实对标题中的字符数有所贡献。 不符合上述规则的字符(例如a ÿ)不会计入字符的累积值(即,它们贡献0),但确实会增加标题中的字符数。 例如,假设的书ÿÿÿÿÿ的“分数”为(0+0+0+0+0) / 5 = 0,但是假设的书的ÿÿyÿÿ分数为(0+0+25+0+0) / 5 = 5。 您可以按自己选择的顺序输出两本“得分”相同的书。(无论如何,它们在同一架子上) 示例输入1 War and Peace Reading …

4
递归ASCII螺旋
这场比赛结束了。感谢您提供有趣的非eolang条目,并祝贺Jakuje赢得了JavaScript提交。 按照此站点上ASCII艺术挑战赛的悠久传统,这是另一个。给定输入,绘制螺旋。 &>----v ||>--v| |||>v|| |||@||| ||^-<|| |^---<| ^-----< 很简单,是吗?呵呵呵呵...是的... (灵感来自ASCII Dragons Curve帖子和Optimizer的ASCII Art of the Day帖子) 输入项 输入将采用一系列参数的形式,这些参数取自通常的STDIN /函数自变量/等,无论您使用哪种语言,均由四个部分组成。这些部分可以是四个单独的参数,一个四元组,一个大小为4的数组等。为了在整个挑战中保持简洁和一致,我将输入表示为单个单词。 一个整数2 ≤ x ≤ 20,以“正方形”指定螺旋的大小,每个打印字符代表一个“正方形”的大小。从理论上讲,它的范围可能很大,但是考虑到我们正在绘制ASCII艺术,此值的安全上限为20,因此它在屏幕上的显示效果相当不错。 d u r或的单个字母l,表示从开始的“正方形”(向下,向上,向右,向左)的初始移动。 可选的c,指示“逆时针”。如果c省略,则假定螺线为顺时针旋转。 最后一个整数1 ≤ y ≤ 10,用于指定将螺旋图形递归多少次,使用前一个螺旋的完成“正方形”作为新螺旋的开始“正方形”。我选择上限为10,因为我想在某个时候完成绘图。 一些示例输入: 20lc5 13d2 2rc1 有趣的是,请注意,输入尺寸的奇数值将@始终始终是螺旋的精确中心,但是偶数值可能会在四个对角线方向的任何一个上具有起始“平方”偏移量,具体取决于初始方向旅行。这可能会导致某些有趣的模式。请参阅下面的两个偶数示例。 未遵循输入规范的输入(例如11q#s)是未定义的,我完全希望程序能够正确发出信号。:) 输出量 输出是通过与语言等效的STDOUT的ASCII可打印输出,具有以下规范: (每次递归的)起始“平方”必须标有at-符号@。 最后的“正方形”必须标有“&”号&。在多次递归的情况下,仅应标记最后一个“正方形” &。 螺旋路径的角需要使用来“指向”行进方向< > v ^。 垂直行程需要用管道来绘制|。 …

13
每个可能的周期长度
如果反复在其自己的输出上调用该函数最终达到原始编号,则可以认为具有输入并提供输出的函数(或程序)具有一个循环。例如,采用以下功能: Input: n 1 2 3 4 5 6 Output: f(n) 5 7 1 3 4 9 如果我们开始n=1,f(n)=5,f(f(n))=f(5)=4,f(f(f(n)))=f(4)=3,f(f(f(f(n))))=f(3)=1。 这是书面的(1 5 4 3)。由于此循环中有4个唯一数字,因此这是一个长度为4的循环。 您面临的挑战是编写一个具有每个可能长度的循环的程序或函数。也就是说,必须有一个长度为1,长度为2的循环,依此类推。 另外,您的函数/程序必须从正整数到正整数,并且必须是双射的,这意味着在所有正整数上,每个可能的输出值都必须有一个准确的输入值。换句话说,函数/程序必须计算正整数的排列。 详细信息:允许使用任何标准输入/输出系统,包括STDIN,STDOUT,函数参数,返回等。禁止使用标准漏洞。 您无需担心数据类型的限制-例如,仅在假设int或float可以容纳任何值的情况下保留以上属性。 对于非正整数的输入,该函数的行为没有任何限制,这些输入/输出将被忽略。 计分是按字节计的代码高尔夫球,最短的代码获胜。

9
实施函数式编程范例
您的公司才刚刚开始一个项目,并且您第一次决定使用功能性编程代码风格。但是,您的老板确实很不满意,不想使用内置功能,需要您自己实现主要功能。特别是你需要写功能:Map,Nest,Apply,Range,Fold并Table在您选择的语言。老板是一个非常忙碌的人,他想让程序尽可能短,这样他就不会浪费时间阅读。他也不想让您使用循环,因此,如果不使用循环,您的字节数将减少10%。 功能的详细要求如下: 地图 该Map函数有两个参数:f和list其中where f是一个函数,list是一个值列表。它应返回f应用于的每个元素list。因此它将按以下方式工作: Map(f,{a,b,c}) 退货 { f(a), f(b), f(c) } 和 Map(f, {{a,b},{b,c}}) 退货 { f({a,b}), f({b,c})} 巢 该Nest函数有三个参数,以及:f,arg,times这里f是一个功能,arg就是它的启动参数,times是功能多少次应用。它应返回一个对f施加times时间的表达式arg。因此它将按以下方式工作: Nest(f, x, 3) 退货 f(f(f(x))) 和 Nest(f, {a,b}, 3) 退货 f(f(f({a,b}))) 应用 该Apply函数有两个参数:f和args这里f是一个函数和args一个列表。它应该适用f于args。因此: Apply(f, {a,b,c}) 退货 f(a,b,c) 范围 该Range函数采用一个整数,r并输出直至该数字的整数。因此: Range(5) 退货 { 1, 2, 3, 4, 5} 折 该Fold函数有三个参数f,arg,others这里f是一个功能,arg就是简单的参数,并others列表。它将这样工作: …

2
旋转钻石瓷砖
任何规则的六边形都可以用钻石平铺,例如这样(从该问题中被盗): ______ /_/_/\_\ /_/\_\/\_\ /\_\/_/\/_/\ \/_/\_\/_/\/ \_\/_/\_\/ \_\_\/_/ 我们将考虑上述大小为1的拼贴(因为钻石的侧面由一个/或\组成)。大小为2的相同拼贴如下所示: ____________ / / /\ \ /___/___/ \___\ / /\ \ /\ \ /___/ \___\/ \___\ /\ \ / /\ / /\ / \___\/___/ \/___/ \ \ / /\ \ / /\ / \/___/ \___\/___/ \/ \ \ / /\ \ / …

26
制作PPCG图标
到11月1日,Programming Puzzles和Code Golf将会毕业,因此在接下来的11个月中,我们将保留一些我们尚未毕业时的记忆。 编写一个生成PPCG图标的程序,如下所示。 图片必须至少为64x64像素。 蓝色必须是颜色#62B0DF。背景可以是白色或浅灰色。 图像不必像这里一样被像素化。 或者,使用青色和白色的标准明亮ANSI颜色代码创建文本(尺寸至少为64x64个非空白字符)。 不允许内置图像和导入PPCG徽标。 这是代码高尔夫球,因此适用标准规则。以字节为单位的最短代码获胜。

8
是简单还是困难?
为了您的困难,您必须让计算机做一件事情,以找出是否以简单的方式解释了一些单词。如果仅使用一千个最常用的单词,就会以一种简单的方式进行解释。如果不是这样,将很难进行解释。这可以是完整的计算机内容,也可以是计算机内容的一部分。(完整的程序或功能) 对于计算机而言,有一个东西可以读取,其中包含所有的一千个单词,每个单词之间都有一个空格。供计算机读取的事物的名称称为“ most used.txt”。您可以从此计算机处取走这东西。 使用计算机事物的人将输入一些单词。(这可以来自STDIN,函数自变量或命令行自变量)如果单词很简单,则计算机必须说出类似“真”的含义,如果很难,则必须说出不真实的含义。(诚实-虚假)为计算机做最短的事情的人是最好的。每个人都知道的坏事是坏事。(适用标准漏洞) 有关计算机事物如何工作的更多信息: 单词是大还是小都无所谓。 使单词含义更容易理解(标点符号)的图片并不重要。因此,如果使用计算机的人说“不要”,那么它与“不要”这个词是不同的。数字和其他图片也没有关系。因此,如果该人说“ HE $$ ll9o”,则计算机应将其读为“ hello” 单词(破折号)之间的细线与空格的工作方式相同。因此,“上五行”一词与“上五行”一词相同。 有关制作这样的单词的更多知识: https://xkcd.com/1133/ http://splasho.com/upgoer5/#
21 code-golf  string 

12
ASCII Maya数字
编写一个程序或函数,在给定正整数作为输入的情况下,以Maya数字输出该整数的表示形式。 玛雅数字 Maya数字是仅使用3个符号的原始系统(以20为基数): < >对于零(正确的符号是某种不能轻易使用ASCII来表示外壳的)。 .对于一个 ----对于五 数字以20的幂垂直写入,0到19之间的数字以5和1的堆栈形式写入。您应参阅Wikipedia文章以获取更多详细信息。 例如,以下是0到25之间的数字,以逗号分隔: . .. ... .... . .. ... .... ---- ---- ---- ---- ---- . . . . . . . .. ... .... ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- < >, . , .. ,... ,....,----,----,----,----,----,----,----,----,----,----,----,----,----,----,----,< >, …

10
图像的平均颜色
图片的平均颜色 科学家已经能够确定宇宙的平均颜色,但是我们可以在多少个字节中找到图像的平均颜色呢? 你的任务 您的输入将是一幅图像,您将需要查找图像中颜色的平均值并输出十六进制颜色字符串(#??????)。图像可以是以下任何格式 JPEG / JFIF JPEG 2000 TIFF GIF 骨形态发生蛋白 PNG PNM PPM 输入也可以作为图像的URL / URI。 内置函数ImageMeasurements无法计算平均值或立即对图像进行采样。 例子 结果将略有不同,具体取决于您如何计算平均值和使用哪种颜色模型。我为下面的图像添加了RGB和LCH(HSV)值。 输出:#53715FRGB,也可以是#3B7D3DLCH(HSV) 输出:#8B7D41RGB,#96753CLCH(HSV)

4
赢得声誉的幸运数字
一个新的代码窃贼,乔,刚刚注册到该站点。他享有1个声誉,但决心在声誉方面达到所有幸运数字。乔相信更高的权力,这将有助于他以最少的(他或他人)行动来实现自己的目标。作为新用户,他还认为负面声誉是可能的。 您应该编写一个程序或函数来帮助Joe计算他期望执行的动作数。 细节 这些操作可以按以下数量更改信誉(与堆栈交换规则无关,所有操作在每一步都可用): answer accepted: +15 answer voted up: +10 question voted up: +5 accepts answer: +2 votes down an answer: −1 question voted down: −2 其他特殊声誉更改将被忽略。 幸运数字可以是负数,并且可以按任何顺序到达。 您的解决方案必须在一分钟之内在我的计算机上解决任何示例测试用例(我将仅测试关闭用例。我的PC低于平均水平。) 输入项 Joe的幸运数字是您语言的一种常见形式的整数列表。 输出量 需要作为单个整数的最小操作数。 输出可以打印到标准输出或作为整数返回。 例子 输入=>输出(信誉状态示例) 1 => 0 (1) 3 2 1 => 2 (1 -> 3 -> …

5
中文棋盘格
中国跳棋的游戏是在棋盘上进行的,棋盘上的空间为六角星状: 图片来自维基百科 我们可以创建此板的ASCII美术表示形式,.用于空白点和GYORPB六个彩色起始位置的字母: G G G G G G G G G G B B B B . . . . . Y Y Y Y B B B . . . . . . Y Y Y B B . . . . . . . Y Y B …

5
每日随机ASCII艺术#5:钻石拼贴
混搭时间! 这是我的每日随机高尔夫和Optimizer的ASCII每日艺术系列的第5期。您在此挑战中提交的作品将计入两个排行榜(您可以在其中找到链接的帖子)。当然,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心任何一个系列。 第5洞:钻石拼贴 正六边形始终可以用钻石平铺,如下所示: 我们将使用这些拼贴的ASCII艺术表示形式。对于边长为2的六边形,有20个此类平铺: ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ /\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\ /\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\ \/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/ \/_/_/ \/_/_/ \/_/_/ \_\/_/ \/_/_/ …

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.