Questions tagged «code-golf»

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

5
堆积块
给定输入要在某些点放下的块的列表,请输出结果“塔”的高度。 解释此挑战的最佳方法是通过示例。输入将是2n个代表n个块的整数的列表。第一个整数是块的x位置(从0开始),第二个整数是块的宽度。例如,输入2 4代表该块(下面标有x坐标): #### 0123456789 现在,假设输入为2 4 4 6。也就是说,x = 2处的一个块的宽度为4,x = 4处的一个块的宽度为6: ###### #### 请注意,a。)块始终从塔的顶部“掉落”,b。)块永远不会“掉落”(即,它们始终保持平衡)。因此,输入的 2 4 4 6 12 1代表: ###### #### # 请注意,最后一块已经完全落到了“地面”上。 您的最终输出应该是每个x值处塔的最大高度,直至最大。因此,输入2 4 4 6 12 1应产生输出 0011222222001: ###### #### # 0011222222001 输入可以以空格/逗号分隔的字符串,整数数组或函数/命令行参数的形式给出。块位置(x值)将始终为0或更大的整数,宽度将始终为1或更大的整数,并且始终至少有一个块。 输出可以是由非数字字符(例如"0, 0, 1, ...")分隔的单个字符串,列出所有数字的单个字符串(例如 "001..."-保证最大高度为9或更小)或整数数组。 由于这是code-golf,因此以字节为单位的最短代码将获胜。 测试用例: In Out --------------------------------------------------------- 2 4 …
15 code-golf 

2
苹果掉下来了
介绍 x轴上的苹果树干位于-2到2之间,一些苹果掉落在它周围: | | | | <-------|---|-------> -2 2 每天,有n个苹果掉下来。每个苹果都保持其x坐标,直落在地。 但是,如果它落在另一个苹果的顶部,它将按照以下规则滚动,直到到达地面或苹果的支撑层: 如果当前高度的x + 1处的空间为空,则当前的苹果会去那里。 否则,如果x-1处的空间为空,则当前的苹果进入该位置。 否则,当前苹果将停留在该其他苹果之上。 挑战 输入将按顺序是每个苹果的n个起始位置。您可以将其视为数组或分隔数字,也可以采用其他任何有效方式,只需确保在答案中对其进行了解释即可。 输出应该是树干和周围苹果的ASCII绘图。您不需要在最左边的苹果的左侧和最右边的苹果的右侧绘制x轴,但是您确实需要在某些苹果下方的任何位置绘制x轴。您还可以将树扩展到最高苹果上方。 您可以假设所有x坐标都在-100和100之间,但不在-2和2之间。 这是代码高尔夫球 ..以字节为单位的最短答案胜出! 例子 输入: [-3, 5, 5, -4, -4, 5, -3] 输出: a| | aaa| | aaa ---|---|---- 输入: [3, 3, 3, 3, 8, 9] 输出: | |a | |aaa …

10
整数序列中的代码字
介绍 Pareidolia:来自古希腊语;παρα(para,“并发,并排”)+ εἴδωλον(eídōlon,“ image”)。倾向于将模糊的刺激解释为观察者已知的东西,例如将火星上的标记解释为运河,看到云中的形状或听到音乐中的隐藏信息。资料来源:维基词典。 例如: 旁白:来自古希腊;παρα(para,“并发,并排”)+ λόγος(lógos,“语音,演说,单词,...”)。倾向于以任意字符序列感知单词,例如在代码高尔夫程序中。资料来源:是的,我编造了这个词(实际上,@ Martin指出,该词还具有其他含义)。 例如: df4$/H)hEy_^p2\ jtK2$)look|x1$ 挑战 编写一个程序,以正整数作为输入,生成一个整数作为输出,并在代码中包含一个英文单词。输入输出关系必须对应于OEIS中可以找到的整数序列。 规则 仅允许该列表中的单词。诚然,这是任意的,但至关重要的是,我们都同意接受哪些词。就此而言,此列表可能与其他列表一样好。 单词需要通过串联至少两个函数名称或语句来形成。例如,如果您的语言具有一个称为的函数correlation,则不能原样使用。串联必须严格:单词的各个部分之间不应出现其他符号。例如,bro~ken不会算作单词。 案例是不重要的:既valid和vaLiD是可以接受的。 字符串中的单词不计算在内。组成单词的字母必须是所选语言中的函数或语句,即实际执行的东西。例如,将不允许以下代码:'deoxyribonucleic'~1,其中'...'为字符串,~丢弃先前的内容,1仅打印number 1。 单词的每个字母都应该是必要的。这意味着从单词中删除单个字母应该会更改输入输出关系。这包括输出不同的序列,或输出任何其他东西,或不产生输出,或引起错误。 除数据类型或内存限制外,任何正整数都应可接受作为输入,并应产生输出。 对应于输入的输出1,2,3,...应当对应于出现在序列OEIS。不应产生其他输出;仅整数,可能带有尾随或前导空格。 输入和输出可以是函数参数或stdin / stdout。 得分了 分数计算为总代码长度减去最长单词长度(以字符为单位)的两倍。或等效地,非最长单词字符数减去最长单词的长度。 最低分获胜。 例子 考虑一种具有以下功能的假想后缀语言c:At:计算平方;$:加1。 cAt将是一个有效的程序(其输出对应于序列1,4,9,...,这是A000290),它会有得分-3。 cAt$也将是有效的(序列2,5,10,...,这是A002522),与分数-2。 c$At 无效,因为这里唯一的单词是“ At”,并且是由单个函数或语句产生的。
15 code-golf  number  word 

3
PNZ(按顺序猜测3个唯一数字)
从很久以前的编程书籍中的挑战来看,PNZ是一款游戏,用户必须以正确的顺序猜测三个唯一的数字。 规则: 生成一个无重复数字的随机3位数字。(这是用户试图猜测的) 用户输入3位数字的猜测值,该猜测值将由程序进行评估。 在正确的位置为每个正确的数字输出“ P”。 在错误的位置为每个正确的数字输出“ N”。 仅当没有正确的数字时才输出“ Z”。 继续接受输入,直到所有数字正确并且在正确的位置,然后输出“ PPP”,后跟在新行上进行的猜测数目。 注意事项: “正确的数字”是指猜测中的一位数字也是随机的3位数字中的一位数字。 “正确的位置”表示它是“正确的数字”,并且与3位随机数位于同一位置。 输出的顺序应该是所有“ P”的开头,然后是“ N”,或者如果没有正确的地方,则只有“ Z”。 如果一个输入中含有重复的数字,“P”的优先级高于“N”(例如:Number: 123 Input: 111 Output: P) (可选)输入的长度不完全是三位数的字符不应该被评估,也不应该计入连续的猜测总数中 如果生成的数字是123的示例 > 147 P > 152 PN > 126 PP > 123 PPP 4 例如,如果生成的数字是047 > 123 Z > 456 N > 478 NN …

3
标记基于堆栈的语言
我一直在研究另一种称为Stackgoat的基于堆栈的高尔夫语言。在这个挑战中,您将为Stackgoat(或实际上是任何通用的基于堆栈的语言)编写Tokenizer。 例子 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 规格 您需要处理的三种类型是: 弦乐,什么内"" 数字,任何数字序列 运算符,除空格外的任何其他单个字符 除非将其留在字符串中或将两个数字分隔开,否则实际上将忽略空格。 字符串/字符规范: 字符串以分隔",当\遇到时,下一个字符应转义。 字符前面加a ',后面的字符'应转换为字符串文字。'a->"a" ' 后面总会有一个角色 右引号应自动插入 规则: 没有形式eval允许 输入输出: 可以通过STDIN,函数参数或您的语言等效输入。 输出应为数组或您的语言最接近的等效数组。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

6
在六角形网格上运动
给定一系列代表六边形网格上运动的字符的输入,输出“指针”的最终坐标。 我们的六边形将按以下方式编号(想象一个矩形网格,每个奇数编号的列都会稍微向下移动): _____ _____ _____ _____ / \ / \ / \ / \ / -3,-2 \_____/ -1,-2 \_____/ 1,-2 \_____/ 3,-2 \ \ / \ / \ / \ / \_____/ -2,-1 \_____/ 0,-1 \_____/ 2,-1 \_____/ / \ / \ / \ / \ / -3,-1 \_____/ -1,-1 …

6
将2d数组显示为ASCII表
任务是显示给定数组的ascii表。 输入值 输入是2D矩阵。矩阵的行长与数组的长度相同。另外,您也可以输入2D矩阵,第一行是标题。外部尺寸是该行。 输入示例: [["License","2008-05-08","2009-03-11","2011-11-22","2013-08-12","2015-11-19"],["GPLv2","58.69%","52.2%","42.5%","33%","23%"],["GPLv3","1.64%","4.15%","6.5%","12%","9%"],["LGPL 2.1","11.39%","9.84%","?","6%","5%"],["LGPL 3.0","? (<0.64%)","0.37%","?","3%","2%"],["GPL family together","71.72% (+ <0.64%)","66.56%","?","54%","39%"]] 输出量 表的输出如下所示。 +---------------------+-------------------+------------+------------+------------+------------+ | License | 2008-05-08 | 2009-03-11 | 2011-11-22 | 2013-08-12 | 2015-11-19 | +---------------------+-------------------+------------+------------+------------+------------+ | GPLv2 | 58.69% | 52.2% | 42.5% | 33% | 23% | | GPLv3 | 1.64% | 4.15% | 6.5% …

13
回文素因子
回文质素问题很普遍,但这不是这个问题的实质。在这个挑战中,数字不一定是回文,它的主要因素就是如此。 任务 您的代码必须采用单个正整数作为输入。然后,在连接时检查该整数的质数因子的任何排列是否回文。如果是这样,则输出其中之一(因子列表,而不是串联字符串)。否则,您必须输出-1。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 11 -> [11] 4 -> [2, 2] 39 -> [3, 13] 6 -> -1 1207 -> [17, 71] 393 -> -1 2352 -> [2, 2, 7, 3, 7, 2, 2]

5
玩单词链
在我小的时候,我经常玩一个叫做Word chain的文字游戏。这很简单。第一个玩家选择一个单词;下一位玩家说另一个单词,该单词以与上一个单词结尾相同的字母开头。这将一直持续下去,直到有人放弃!诀窍是,您不能两次使用相同的单词(除非每个人都忘记了甚至使用过该单词!)。通常,我们会讨论一个特定的主题,以使其难度更大。但是现在,我希望您编写一个程序来为我执行此操作。 挑战 编写完整的程序或函数,以使用给定的一组单词和起始单词查找所有最长的单词链。 这是代码高尔夫球,因此最短的代码获胜! 输入值 有两个输入:一个列表和一个起始词。起始词将不在列表中。输入全部为小写ASCII,并且列表中将不包含重复的单词。 输出量 列表中的所有单词序列,使得: 起始单词是序列中的第一个单词。 每个后续单词均以与前一个单词的最后一个字母相同的字母开头。 序列的长度是最长的。 如果有多个最长的序列,请全部输出。 该序列不一定需要包含所有列表单词。有时这是不可能的(请参见测试用例)。同样,任何单词都不能使用两次! 测试用例 In: [hello, turtle, eat, cat, people] artistic Out: [artistic, cat, turtle, eat] In: [lemonade, meatball, egg, grape] ham Out: [ham, meatball, lemonade, egg, grape] In: [cat, cute, ewok] attic Out: [attic, cute, ewok] In:[cat, cute, …

1
做连锁规则
在差异化和整合方面,我们面临着许多挑战,但是在解决相关费率问题上没有挑战。因此,在此挑战中,您将获得一堆导数(它们将是数字,而不是任何变量),并且必须找到另一个导数。 输入将以换行符分隔的方程式列表形式出现dx/dt = 4。可以有小数和负数。 输入将以一个差分结束,您必须找到一个差分。您可以假设总是会有足够的信息来找到它,但是也可能有多余的信息。 您可能还必须考虑反函数的导数,例如,如果有dy/dx = 3,您也知道dx/dy = 1/3。 您的输出将采用形式dy/dt = 6。所有空格等必须相同。假设所有变量总是一个字母(它们可以是大写字母,也可以是d)。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 dy/dx = 4 dx/dt = 5 dy/dt answer: dy/dt = 20 dy/dx = -3 dt/dx = 3 dy/dt answer: dy/dt = -1 dA/dt = 4 dA/dC = 2 dC/dr = 6.28 dr/dt answer: dr/dt = …

3
删除字母同时保持字符串唯一
受启发 这一奇妙的挑战(基于观点和投票的数量)的,以我的拙见,答案太少了。 给定(通过任何方式)字符串列表,返回(通过任何方式)一组字母,当从给定字符串中删除这些字母时,它们(剩余的字符串)的总长度应尽可能小,同时保持每个字母的长度字符串唯一且至少一个字符长。 例子: 给定“日”和“日”;返回“ ay”,因为删除字符“ ay”时给定的字符串将是“ D”和“ d”。 给定“ Hello World!”,“ Hello world。”和“ Hello world”;之所以返回“ Helo Wrd”,是因为删除字符“ Helo Wrd”(带空格)时,字符串将为“!”,“ w。”和“ w”。 给定“世纪”,“十年”,“年”,“月”,“周”,“日”,“小时”,“分钟”和“秒”;返回“ centurdowi”,因为当字符“ centurdowi”给定的单词将是“ y”,“ a”,“ ya”,“ mh”,“ k”,“ ay”,“ h”,“ m”,“ s” ”已删除。 返回集的顺序和格式并不重要。

2
阵列可以改组吗?
背景 非常熟练的卡处理人员能够运用这样的技术:将卡座完美地切成两半,然后完美地插入卡。如果他们从已排序的牌组开始并连续52次完美执行此技术,则牌组将恢复为已排序的顺序。您面临的挑战是将一副纸牌组成一个整数数组,并确定是否只能使用Faro随机排序对其进行排序。 定义 从数学上来说,法鲁混洗是对2 n个元素(对于任何正整数n)的置换,它将位置i(1索引)中的元素移到位置2 i(mod 2 n +1)。我们还希望能够处理奇数长度的列表,因此在这种情况下,只需将一个元素添加到列表的末尾(如果您有一个方便的话,一个小丑即可),然后Faro像上面那样洗净新列表,但是忽略检查列表顺序时添加的虚拟元素。 目标 编写程序或函数,该程序或函数接受整数列表,如果一定数量的Faro混洗会导致该列表以不降序排列(即使该数字为零-小列表也应显示真值),则返回或输出真值。否则,返回或输出错误。 例子 [1,1,2,3,5,8,13,21] => True [5,1,8,1,13,2,21,3] => True [9,36,5,34,2,10,1] => True [1,0] => True [0] => True [] => True [3,2,1] => True [3,1,2] => False [9,8,7,6,5,4,3,2,1,0] => True [9,8,7,6,5,4,3,2,0,1] => False [3,1,4,1,5,9,2,6,9] => False [-1,-1,-1,-2] => True 计分 这是代码高尔夫球,因此以字节为单位的最短源代码获胜。

8
最小总和为n的数字
这里的第一个问题,如果这是重复的或不好的挑战,请不要对我大喊。 介绍 我自己想到了这个挑战,对于初学者来说,这似乎是一个很好的基本难题。这也可能有助于我确定要学习哪种编码语言。 挑战 给定一个小于或等于整数n的数组,从数组中输出或返回最小数目的精确求和n。 您可以选择编写函数或完整程序。 输入值 您可以放心假设0 <= n < 2^31。 接受任何类型的数组或列表(允许vector用于C ++或Java LinkedList),以及n一个可选参数length,该参数指定数组的长度。 您还可以将输入作为用空格分隔的字符串,并n用逗号或空格分隔: 1 5 7 3 7 3 6 3 2 6 3,10 1 5 7 3 7 3 6 3 2 6 3 10 如果更容易。 输出量 输出或从数组中返回总和恰好为的最小数目的数字n。使用上面的示例: 1 5 7 3 7 3 6 3 …

12
由五角形数构成的五角形数
介绍 甲五角数(A000326)由公式生成P Ñ = 0.5×(3N 2 -n) 。或者,您可以只计算使用的点数: 您可以使用公式或上面的gif查找前几个五边形数字: 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, 176, 210, 247, 287, 330, 376, 425, 477, etc... 接下来,我们需要计算x个连续数字的总和。 例如,如果x = 4,我们需要查看P n + P n + 1 + P n + 2 + P n + 3(由4个项组成)。如果五角形的总和也是五角形,我们将其称为五角形五角形。 对于x = …

11
求和
我很喜欢阅读本网站;这是我的第一个问题。欢迎进行编辑。 给定正整数n和m,将m的所有有序分区精确地计算为n个正整数部分,并用逗号和换行符分隔它们。任何顺序都可以,但是每个分区必须恰好出现一次。 例如,给定m = 6和n = 2,可能的分区是对正整数的和,总和为6: 1,5 2,4 3,3 4,2 5,1 请注意,[1,5]和[5,1]是不同的有序分区。输出应与上述格式完全相同,并带有可选的尾随换行符。(编辑:分区的确切顺序无关紧要)。输入/输出通过标准代码高尔夫球I / O进行。 m = 7,n = 3的另一个示例输出: 1,1,5 1,2,4 2,1,4 1,3,3 2,2,3 3,1,3 1,4,2 2,3,2 3,2,2 4,1,2 1,5,1 2,4,1 3,3,1 4,2,1 5,1,1 1周后以字节为单位的最小代码获胜。 同样,请根据需要进行编辑。 附录: @TimmyD询问程序必须支持的整数输入大小。除示例外,没有其他最低要求。实际上,输出大小呈指数增长,粗略地建模为:lines = e ^(0.6282 n-1.8273)。 n | m | lines of output …

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.