Questions tagged «code-golf»

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

13
高尔夫我的莎士比亚报价参考
在为莎士比亚撰写论文时,我意识到我需要将引用引用缩短到更易于管理的长度。我以前一直在写这个: (Act 1, Scene 2, Lines 345-346) 但是现在我被告知要这样写它们: (I.ii.345-6) 显然,我需要一些打高尔夫的代码才能对莎士比亚的报价引用有所了解。 任务 编写一个程序或函数,给定在模板1或2之后输入字符串的情况,分别打印或返回在模板3或4之后返回的字符串。您只需要支持Act 1至5和Scene 1至9。 范本 范本1 (Act x, Scene y, Lines a-b) 您可以假设x从不超过5,y从不超过9,a并且b始终是正整数,不超过您语言的最大正标准整数值,并且a始终排他地小于b。 范本2 (Act x, Scene y, Line a) 与模板1的条件相同,但有关的信息除外b。 范本3 (x.y.a-b) 其中x是大写罗马数字,y是小写罗马数字,a并且b是数字,并且b被缩短为仅小于与相等的第一个不同有效位的数字a。 范本4 (x.y.a) 与模板3的条件相同,但不包含有关的信息b。 测试用例 让它f(s)成为任务中定义的功能。""表示字符串值。 >>> f("(Act 1, Scene 2, Lines 345-346)") "(I.ii.345-6)" >>> f("(Act 3, …

30
打网球吧
我突然真的很想打网球,可惜我没有球场! 惊喜!这是您进来的地方。 您必须为我打印一个网球场,但是由于机密原因,您必须以最少的字节数进行打印。 网球场 --------- | | --------- | | | xxxxxxxxx | | | --------- | | --------- 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

23
手性难题
如果没有任何旋转量,形状看起来像镜像,则该形状是手性的。在这个难题中,我们将编写手性计算机程序。 对于这个难题,我们将程序视为字符的矩形矩阵。因此,应对这一挑战的所有解决方案都必须是矩形的(也就是说,所有线的长度必须相同)。我们可以按四分之一圈的增量旋转这些程序。例如程序 The quickish fish lept deftly rightwards 当顺时针旋转四分之一转时 T h r e i glq heu tpi wtc a k rdi des sfh t lf yi s h 我们也可以反映这些程序。这是在垂直轴上反映的同一程序: hsif hsikciuq ehT yltfed tpel sdrawthgir 手征性程序是这样的程序,当它旋转任意次数时,总是输出“ left”。但是,当反射时,right无论旋转多少次,该程序都会输出“ ”。 您的任务是编写一个尽可能少的字节的手性程序。 附加规则 输出不区分大小写,但应保持一致。(例如,您可以输出“ LEFT”和“ rIgHt”,但此大小写在旋转下必须保持一致) 行将在换行符或换行符和换行符之间进行拆分。 您的程序必须是矩形,可以用空格或注释填充它,但每一行的长度必须相同。 如果需要,您可以选择在所有程序上使用尾随换行符(或换行符和换行符)。

26
程序拼图和代码____
输入项 一个非空的编码字符串,由可打印的ASCII字符组成(范围为32-126),其中一些丢失的字母已替换为_。 输出量 长度相同的解码字符串,所有字母均小写,包括丢失的字母。 怎么样? 编辑:正如@Deusovi在评论中提到的,这是Bacon密码的一种变体。 收集原始字符串中的所有字母,然后将它们分组为5。不适合全部5个字符的其他字母将被忽略。 将每个组转换为二进制:小写= 0,大写= 1。这导致一个整数列表。 使用此列表中的每个值N,按出现顺序_将原始字符串中的每个值替换为字母的第N个字母(0索引)。 例: prOGraMMIng PuZZleS & cOde ____ prOGr --> 00110 --> 6 --> 7th letter = 'g' aMMIn --> 01110 --> 14 --> 15th letter = 'o' gPuZZ --> 01011 --> 11 --> 12th letter = 'l' leScO --> 00101 …

30
文字冰柱
由于Stack Exchange的技术限制,标题显示不正确。此挑战的正确标题是 做一个 Word Icicle! Word Icicle Word cicle ord cicle ord icle ord i le or i le or i l or l or r 当今的挑战是使输入词无法产生冰柱。给定一个完全可打印的ASCII字符串,以及至少2个非空格字符,请执行以下步骤: 打印字符串的当前状态。 用空格替换词法上最小的字符(空格除外)。如果有平局,请替换最左边的字符。 在连续的行上重复直到该字符串仅包含1个非空格字符。 这产生了输入字符串看起来像融化的效果。 I'm Melting!!! I'm Melting !! I'm Melting ! I'm Melting I m Melting m Melting m elting m lting …

19
通过复制初始代码来创建大小增加的正方形
您的任务是编写一个长度均匀的程序,该程序打印一个ASCII艺术字型方块(如下所述),每次将原始源代码粘贴到当前代码中间时,其边长就会增加1个单位。 我很难很好地定义此任务,因此,我举一个例子: 假设您的初始代码是CODE并且已打印: 0 然后,CODE在中间插入:您的代码将变成COCODEDE并且应该打印: 00 00 CODE在中间重新插入:您的代码将变成COCOCODEDEDE 并且应该打印: 000 000 000 等等。从理论上讲,您的答案在经过任意多次迭代后都应该可以使用,但是我知道,由于语言性能的限制,它是否不能合理地超过某个阈值。 一些规则: 您可以使用任何可打印的ASCII(32-127)作为用于正方形的字符。您的选择必须是恒定的(每次迭代都应使用相同的字符)。 初始输出平方必须具有边长1。 ascii-art正方形定义为具有N行的字符串(由N-1个换行符/换行符分隔),并且每行包含N个所选字符的副本。 除尾随换行符外,您的输出不允许包含任何多余的空格。 您可以将默认值用于输入和输出(允许使用程序或功能,但不允许使用代码段)。 代码的中间部分定义为可以将源代码分为两部分,以使两者相等的点。 您的答案将按照原始程序的长度(以字节为单位)进行评分。最低字节数获胜。如果出现平局,则较早提交的答案将获胜。 您可以使用此程序来应用插入,而无需手动进行。

30
在每个字符首次出现时拆分字符串
有关。 给定一个可打印的ASCII字符串,将其分割为一个非空字符串列表,并在每次出现以前从未在同一情况下出现过的字符时开始一个新的子字符串。 例子 "mississippi" → ["m","i","ssissi","ppi"] "P P & C G" → ["P"," P ","& ","C ","G"] "AAA" → ["AAA"] "Adam" → ["A","d","a","m"] "" → [] 轶事:结果将包含0到95个元素。95 个子串必然会一直持续到年底,因为在这一点上,所有可打印的ASCII字符已经开始子串,所以每一个额外的字符将之前发生,因而不能引起新的子字符串开始。

22
什么奇怪的功能
您的任务是实现一个函数1,该函数在正整数上形成置换(从正整数到自身的双射)。这意味着每个正整数在排列中应该恰好出现一次。最重要的是,您的函数输出奇数而不是偶数的可能性更大。 现在,这似乎很奇怪或不可能。当然,奇数和偶数一样多吗?虽然这种直觉对于有限集是正确的,但实际上对于无限集并不成立。例如,采用以下排列: 1 3 2 5 7 4 9 11 6 13 15 8 17 19 10 21 23 12 25 27 14 29 31 16 33 35 18 37 39 20 41 43 22 45 47 24 49 51 26 53 55 ... 如果对序列中的任何一个子部分的大小大于,则奇数至少与偶数一样多,因此,似乎任何随机项为奇数的概率都大于偶数。您还会注意到,每个数字最终都会在序列中出现奇数或偶数,并且只能出现一次。因此,该序列是真正的排列。1个11 概率的定义 为了避免混淆或模棱两可,我将清楚地阐明该问题中概率的含义。 让我们说我们有一个函数。当趋于无穷大时,一个数字为奇数的概率将定义为该集合的奇数成员与集合的大小之比的极限。FffF{ 1 …

1
循环Levenquine
背景 正如大多数PPCG常规人员所知道的,quine是一个程序,在运行时会输出自己的源代码。而两个字符串之间的Levenshtein距离是将一个字符串转换为另一个字符串所需的最小插入,删除和编辑次数。在这个挑战中,我们将两个概念组合成一个“ levenquine”:一个程序输出自己的源代码,但插入,删除或替换一个不同字符的一个字符的一个实例。(换句话说,程序与其输出之间的Levenshtein距离为1。) 任务 编写一个levenquine,使其输出为levenquine,该程序的输出也为levenquine,依此类推。此外,在某些时候,重复运行程序,运行其输出,运行其输出的输出等的顺序最终必须返回到原始程序。 还有一个额外的限制使事情变得更加困难:在此循环内某个地方必须有两个不同的程序,它们没有共同的字符(换句话说,一个程序中没有字符,另一个程序中也没有字符)。因此,您的程序将不得不逐渐将自己转换为其他字符集,然后再次返回。 如果您使用的编程语言在任何产生输出的程序中都具有不可避免的样板(例如,它只有一种编写print语句的方式,而没有其他有用的输出形式),则可以出于该目的将该样板视为不存在确定两个程序有哪些共同点。但是,为了确定代码的Levenquine属性,您仍然必须计算该样板。 澄清说明 循环中的每个“程序”都可以是完整程序或功能。它们不必全部相同,例如,有些可能是完整程序,有些可能是函数。 并非周期中的所有程序都需要使用相同形式的输出。例如,有些可以通过标准输出输出,而有些可以通过标准错误输出。 您的程序将在没有输入的情况下运行(或以需要输入才能执行任何操作的语言,即最简单的输入)运行。 适当的奎规则。尽管Levenquine不是真正的奎因,但是在编写适当的奎因时,您可能不会做任何非法的事情。特别是,空程序永远不会是来自正确的Levenquine的有效输出(因此不能成为您循环的一部分)。 Levenquine限制是根据字符而不是字节来衡量的(例如,ê即使源是用UTF-8编码的,也是一个字符)。不常见字符限制也以字符进行度量。但是,胜利条件以字节为单位。 胜利条件 请从周期中至少提交以下三个程序:最短的程序(以字节为单位);循环中的两个程序没有相同的字符。这些中的两个可能是相同的,并且三个都可能是不同的。分数基于最短程序的字节长度,越短越好,因此成为一种代码高尔夫竞争。

30
有已知的
美国前国防部长唐纳德·拉姆斯菲尔德(Donald Rumsfeld)著名地推广了“已知的已知物”。在这里,我们将把他的言论提炼成四行节。 具体来说,输出以下文本: known knowns known unknowns unknown knowns unknown unknowns 大小写无关紧要(例如,Known unKnowns可以),可以使用单行尾的换行符,但不允许其他格式更改。这意味着单词之间有一个空格,行之间有LF(59字节)或CR/LF(62字节)。 规则 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

30
第三弦
给定两个字符串,输出第三个字符串,该字符串不等于两个输入中的任何一个,但与两个输入中的任何一个具有相同的长度(以字符为单位)。保证至少有一个有效输出。 测试用例 引用测试用例以表明它们是字符串。输出是许多可能之一。 input, input -> output "test", "test" -> "tttt" "do", "don't" -> "dnut_" "ye s", "yes" -> "fals" "yes", "yes" -> "noo" "maybe", "mayue" -> "false" "false", "false" -> "truee" "false", "true" -> "fatr" "1", "" -> "0" "", "t" -> "s" "", "abcabc" -> "testst" "abcdefghijklmnopqrstuvwxyz", "aaaaaaaaaaaaaaaaaaaaaaaaaa" …
45 code-golf  string 

26
一点点还是半字节?
受此挑战启发 给定范围内的整数0 <= n < 2**64,输出可容纳的最小尺寸的容器 位:1 半字节:4 字节:8 短:16 整数:32 长:64 测试用例: 0 -> 1 1 -> 1 2 -> 4 15 -> 4 16 -> 8 123 -> 8 260 -> 16 131313 -> 32 34359750709 -> 64 这是代码高尔夫球,因此最短的答案以字节为单位。

19
绘制/绘制心脏图
您面临的挑战是绘制/绘制以下一颗心。大小必须至少为50x50像素(可以使用矢量图形)。您可以选择要绘制/绘制的心。可以接受轴,网格线等。图形上必须至少有 100个不同的坐标/点。如果需要的话,心脏可以充满色彩。 公式为: 要么 t在范围内[-1, 1]。 要么 要么 这是代码高尔夫球,因此以字节为单位的最短代码(每种语言)获胜。请提供输出(或链接到在线解释器)。

26
大笨钟大爆炸
您的任务是创建一个模仿Big Ben(Twitter)的程序。 任务 每当新的一小时开始时(根据计算机的本地时间或UTC),您都必须输出BONG重复的hour时间(单词之间留一个空格)。例如,当是3点钟时,您必须输出BONG BONG BONG。时间格式遵循12小时制,即12点以后,我们是1,而不是13。程序/功能必须永远运行。 例: 不要在括号内输出内容 (start: 00:34 for example) BONG (01:00) BONG BONG (02:00) (...) BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG (12:00) BONG (01:00 again) (...) (it continues forever) 规则 的每个序列BONG必须用换行符分隔 允许前导/尾随换行符 然而前导/尾随空格都不会允许 提交必须永远运行 您的输出可能会从小时开始时起打印±3秒 您可能不假定该程序在任何特定时间运行 这是代码高尔夫球,因此字节数最短的程序将获胜!

30
没有3的计数
背景 当我上小学时,我们以前在数学课上玩游戏,内容如下。 所有的孩子围成一个大圈,从1开始轮流计数。 但是,在计数时必须跳过以下数字: 是3的倍数的数字。 十进制表示形式为3的数字。 孩子们应该说的前15个数字是 1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 每当有人输入错误的数字(说出顺序不正确的数字或​​跳过出现的数字)时,他就会从圈子中删除。这一直持续到只剩下一个孩子为止。 任务 您在这场比赛中表现不佳,因此决定作弊。编写一个给定序列号的程序或函数,以计算序列的下一个数。 您不必处理无法使用您的语言的本机数字类型表示的数字,只要您的程序在输入251之前可以正常工作,并且您的算法可以在任意大的输入下使用。 输入和输出可以使用任何方便的基础。 由于您必须隐藏代码,因此代码必须尽可能短。实际上,这是code-golf,因此以字节为单位的最短代码获胜。 测试用例 1 -> 2 2 -> 4 11 -> 14 22 -> 25 29 -> 40 251 -> 254

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.