Questions tagged «code-golf»

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

11
休息一下,做一条蛇!
我们的经典蛇体内生长激素失衡。更糟糕的是,他的尾巴被冻结在原地!根据中指定的定向输入Figure 1,编写一个程序来确定他将在何处成长。 图1.方向输入。 程序规格 在上逐字符读取输入的字符STDIN。 读取字符后,将蛇输出到STDOUT。每次打印蛇时,请在两者之间添加一个空白行。 蛇<>v^由头组成。蛇的头部可能是你选择的任何一轮的字符,如o,0,O,或☺。 的任何组合wasd均对输入有效。 您的程序不应假定输入在一定长度内。 蛇会堆在自己的上面,被覆盖<>v^。请参阅有关蛇生长机理的示例。 尾随空格可以,但是您的蛇必须看起来正确。 计分 这是代码高尔夫球。您的分数就是程序中的字符数。最低分获胜! 示例蛇: 输入: ddddssaassdddddww 输出: >>>>v v v<< ☺ v ^ >>>>>^ 输入: dddsssaaawww 输出: ☺>>v ^ v ^ v ^<<< 输入: dddsssdddddasddddwww 输出: >>>v v ☺ v ^ >>>>v< ^ >>>>^ 输入: dddwwdddssssaaaaaaaaawww 输出: >>>v ☺ ^ …
23 code-golf 

8
用法语拼写数字
将数字转换为英文的数字时遇到了挑战,但这太简单了。给定数字0-100,您的任务是输出相应的法语数字。与英语相比,法语数字系统背后的逻辑更为复杂: 数字数 --------------- 0zéro(注意口音) 1个 2倍 3 trois 4夸脱 5 cinq 6 6 9月7日 8点 9块 10迪克斯 11次 12 douze 13 treize 14夸脱 15颗 16抢占 9月17日(字面上是十点七) 18 dix-huit 19 dix-neuf 20根 21 Vent等(没有连字符) 22文特 ... 30个 ... 40夸脱 ... 50 cinquante ... 60 Soixante ... 70 soixante-dix(字面意思是六十) 71 Soixante et …

5
绘制建筑物的阴影
输入: 1 X X X X XX XXXXXX X X X X XX XXXXXX X X X XXX X XX XXXXXX X X X XXX X XX XXXXXX X X X 输出: X. X.. X... X.... XX. XXXXXX. X.X.X. X..... XX.. XXXXXX.. X.X.X.. XXX. X......XX... XXXXXX... X.X.X... XXX.. X......XX....XXXXXX.... X.X.X.... …

24
字符串中的字符不断旋转
(灵感来自PhiNotPi的分形线挑战的初稿。) 您会得到一个width W > 1,height H > 1和一个由2(W+H-2)可打印ASCII字符组成的字符串。任务是从左上角开始按顺时针方向打印此字符串,该字符串缠绕在给定宽度和高度的矩形周围。矩形的内部充满空格。测试用例有望使这一点很清楚。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,然后将结果打印到STDOUT(或最接近的替代方案)或将其作为字符串返回。 不得有前导或尾随空格(除了输入字符串中可能存在的空格之外)。您可以选择输出一个尾随换行符。 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。 测试用例 每个测试用例"String" W H后面都有预期的输出。 "Hello, World! " 5 4 Hello , ! dlroW "+--+|||+--+|||" 4 5 +--+ | | | | | | +--+ ">v<^" 2 2 >v ^< "rock beats scissors beats paper beats " 11 10 rock …

10
异常值电阻
介绍 在构建电子项目时,原理图可能需要一个不正常值的电阻(例如510欧姆)。您检查零件箱,发现没有510欧姆电阻。但是,您确实有许多高于或低于此值的通用值。通过并联和串联组合电阻,您应该能够很好地近似510欧姆电阻。 任务 您必须编写一个函数或程序,该函数或程序接受电阻器值列表(库存的电阻器)和目标值(您要近似的目标值)。该程序必须考虑: 个别电阻 串联两个电阻 两个并联电阻 该程序应从库存清单中计算出1个和2个电阻的所有可能组合(包括相同电阻值的两个副本),计算其串联电阻和并联电阻,然后根据它们对目标值的近似程度对配置进行排序。 输出格式应为每行一种配置,并+表示串联和|并联,并在净电阻前留一些空格或=号。 公式 一个电阻的电阻为 R1 串联的两个电阻的净电阻为 R1 + R2 并联的两个电阻的净电阻为 1 / (1/R1 + 1/R2) 近似电阻值与目标值之间的距离可以计算为伪对数距离,而不是线性距离: dist = abs(Rapprox / Rtarget - 1)。例如,200比350更接近350。 更好的距离度量是对数距离 dist = abs(log(Rapprox/Rtarget)),但由于在原始问题中未指定,因此您可以自由使用任何一种度量。 计分 得分是按照通常的高尔夫规则以代码字符来衡量的。最低分获胜。 例 我们有以下电阻器库存,[100, 150, 220, 330, 470, 680, 1000, 1500, 2200, 3300, 4700]并希望目标510欧姆。程序应输出大约143个配置,如下所示(您可以更改格式,但请确保其含义易于确定): 680 | …

5
正则表达式高尔夫:意大利对美国的地区
受xkcd漫画启发,我们已经遇到了meta-regex-golf问题 但是,这个正则表达式高尔夫看起来也很有趣!我想区分美国各州和意大利各地区。为什么?我是这两个国家的公民,我总是有这样的烦恼*。 意大利的地区是 Abruzzo, Valle d'Aosta, Puglia, Basilicata, Calabria, Campania, Emilia-Romagna, Friuli-Venezia Giulia, Lazio, Liguria, Lombardia, Marche, Molise, Piemonte, Sardegna, Sicilia, Trentino-Alto Adige/Südtirol, Toscana, Umbria, Veneto 美国的州是 Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, …

27
Sierpinski地毯
谁不喜欢一个好的分形?该谢尔宾斯基地毯是分形的典型例子。 要完成此任务,您将需要生成一个地毯类型,并将生成的图像打印到代表水平地毯的stdout(请参见下面的格式示例)。可在此Wikipedia文章上找到步骤。 该值将取自stdin或等效。 例如,输入4将产生4级地毯: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ …

5
打高尔夫球的技巧
您有什么关于打高尔夫球的一般提示?我正在寻找可以应用于编码高尔夫问题的想法,这些想法至少在某些方面是专门针对脑力劳动的(例如,“删除评论”不是答案)。请为每个答案发布一个提示。

6
圆划分平面
任务 您将在平面中得到一组圆,其圆心在y = 0上。保证没有一对圆具有多个公共点。 您的任务是确定圆将平面划分为多少个区域。区域是不包含任何圆的最大包含点连续点集。 给定圆的描述后,您应该编写一个程序来计算此答案。 这是一个例子: 在左侧,您会看到在平面上绘制的圆。但是,在图片的右半部分,圆圈所产生的区域会明显地着色(每个区域一种颜色)。此示例中有六个区域。 输入项 输入的第一行包含一个数字,N后跟的圆圈描述数。这行是可选的,如果您的解决方案在没有它的情况下也可以,那么就可以了。 以下N各行分别包含两个整数x i和r i > 0,代表一个以中心(x i,0)和半径r i为中心的圆。 保证没有一对圆具有多个公共点。进一步保证x i和r i的10^9绝对值不超过(因此,它们可以舒适地装入32位整数)。 输入可以是: 从STDIN读取 从I当前目录中命名的文件中读取 或者,输入可以是: 在全局变量中作为字符串(包括换行符)可用 在堆栈上 输出量 这应该是一个整数,即要生成的区域数。应该将其写入STDOUT或O当前目录中命名的文件。 规则 以字节为单位的最短代码获胜 如果您的代码没有运行时,则+200字节罚款+中的空间复杂度多项式 n -100字节奖励,用于最坏情况下的预期运行时+空间复杂度 O(n log n) -50字节奖励,用于最坏情况下的预期运行时+空间复杂度 O(n) 确定性运行时+100字节加空间复杂度 O(n) 在评估运行时: 假定哈希表具有O(1)预期的插入,删除和查找运行时间,而与操作顺序和输入数据无关。这可能是正确的,也可能不是正确的,具体取决于实现是否使用随机化。 假设您的编程语言的内置类型花费确定性的O(n log n)时间,其中n输入序列的大小为。 假设对输入数字的算术运算仅O(1)花费时间。 尽管出于实际原因,不要假定输入数字受常数限制。这意味着诸如基数排序或计数排序之类的算法不是线性时间。通常,应避免很大的常数因子。 例子 输入: 2 …

4
使用停止的Oracle解决三个未解决的问题
您将获得以下函数:h1(f,* args)和h2(f,* args) 两者都是已经为您定义的方法(此处的星号表示可变数量的参数) f是一个函数,* args是要传递给该函数的参数列表 h1返回一个布尔值:如果在* args上调用f时函数停止,则返回true;否则返回False(假定正在运行的计算机具有无限的时间和内存,并且您正在编写的语言的解释器/编译器)知道如何处理无限的时间和记忆)。 如果f(* args)曾经调用过h1或h2,则h1会引发异常 h2的行为与h1完全相同,只是如果f调用了h1,则h2不会引发异常 用尽可能少的字符编写一个无需输入且应输出的程序: The Collatz Conjecture is {True/False} Goldbach's Conjecture is {True/False} The Twin Primes Conjecture is {True/False} 基于每个猜想的有效性。 以下是解释每个猜想的维基百科链接: http://en.wikipedia.org/wiki/Collat​​z_conjecture http://en.wikipedia.org/wiki/Goldbach%27s_conjecture http://en.wikipedia.org/wiki/Twin_prime 您可以假设任何以您选择使用的语言编写的大整数库都将成功表示任意大整数。换句话说,我们假设任何能够表达的语言/库3**(3**10)也能够3**(3**(3**10))在足够强大的机器上表达。 显然,由于无法运行您的程序,请与代码一起说明其工作方式
23 code-golf  math 

6
乐高齿轮比
我正在构建一个大型的乐高机器人,我需要使用一组齿轮来生成一些特定的齿轮比。我有很多常见的乐高齿轮规格的齿轮:8齿,16齿,24齿或40齿。编写一个可以在输入齿轮比的地方使用的程序,该程序会告诉我应该使用哪种齿轮组合来获得所需的齿轮比。 输入比例将在标准输入(或您的语言的等效输入)上指定,并且两个整数之间用冒号分隔。比率a:b表示输出轴的旋转a/b时间应与输入轴的旋转速度相同。 输出到标准输出应该是包含齿轮比的一个空格分隔列表中的单个线路,在的形式x:y,其中x是在输入轴上的齿轮的尺寸和y是在输出轴的齿轮的尺寸。对于给定的传动比,必须使用尽可能少的齿轮数。每个x和y必须的一个8,16,24,40。 例子: 1:5 -> 8:40 10:1 -> 40:8 16:8 9:4 -> 24:16 24:16 7:1 -> IMPOSSIBLE 7:7 -> 6:15 -> 16:40 如果不可能达到所需的传动比,则打印“不可行”。如果不需要齿轮,请打印空字符串。 这是代码高尔夫,最短答案胜出。
23 code-golf  math 

21
将重复的小数转换为分数
这个问题不必仅适用于终止小数-重复的小数也可以通过算法转换为分数。 您的任务是制作一个程序,该程序将重复的小数作为输入,并输出产生该小数扩展的相应分子和分母(以最低的条款)。大于1的分数应表示为不正确的分数,例如9/5。您可以假设输入为正。 重复的小数将以以下格式给出: 5.3.87 重复第二个点之后的所有内容,如下所示: 5.3878787878787... 您的程序将输出两个代表分子和分母的整数,并用斜杠分隔(如果不输出纯文本,则为您语言的等效形式): 889/165 请注意,终止小数点在第二个点之后将没有任何内容,而没有非重复小数部分的小数点将在两个点之间没有任何内容。 测试用例 这些测试用例涵盖了所有必需的极端情况: 0..3 = 1/3 0.0.3 = 1/30 0.00.3 = 1/300 0.6875. = 11/16 1.8. = 9/5 2.. = 2/1 5..09 = 56/11 0.1.6 = 1/6 2..142857 = 15/7 0.01041.6 = 1/96 0.2.283950617 = 37/162 0.000000.1 = 1/9000000 0..9 = 1/1 …

5
得分围棋
进行围棋比赛得分并非易事。过去,关于如何设计规则以涵盖可能发生的所有奇特拐角案例的争论一直存在。幸运的是,在此任务中,您不必做复杂的工作,如生死攸关或检测出关。在此任务中,您必须实现一个根据Tromp-Taylor规则在没有Komi的情况下为游戏评分的程序。 计分程序非常简单: 如果P色的相邻点(从P到C点)之间存在(垂直或水平)相邻点的路径,则称为P点(未着色的C点)到达C 点。 ,再加上仅达到她的颜色的空白点数。 例如,考虑以下电路板。X,O并-表示黑色,白色和无色交叉点: - - - X - O - - - - - - X - O - - - - - - X - O - - - - - - X O - - O - X X X O - O O - …

8
Piet Mondrian组合的娱乐
下午好, 您的目标是在最少的源代码字节中重新创建Piet Mondrian的任何“ Composition”绘画(例如,Composition#10)。 重新创建可以使用实际的颜色,也可以使用Windows默认16调色板中的适当颜色替换它。 您的娱乐活动可以PNG,BMP或NetPBM格式输出到文件或STDOUT,或直接输出到屏幕。 您的休闲娱乐必须是512x512或更高的分辨率。 您的娱乐活动不得访问互联网。如果您的程序需要数据文件,则它们的大小将添加到源文件的大小中。 分数将是源文件的大小(以字节为单位)。 请在您的输入中注明您要重新创作的绘画,并提供原始图片和休闲图片的链接。 祝好运。

30
电话号码中的字母
问题: 您正在制作一个新电话,人们可以在其中输入专用电话号码,例如,1-800-program它们会自动转换为可用的电话号码,例如1-800-7764726(对于上一个示例)。 您的程序将接收包含数字,字母和破折号的任意长度的字符串,并将所有字母转换为相应的数字。 这是一个键盘,供参考: 规则: 您的程序将收到一个字符串 它将处理并返回/打印另一个字符串 接受任何语言 由于它是代码高尔夫球,所以最短的代码获胜
23 code-golf  number 

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.