Questions tagged «code-golf»

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

2
ASCII希尔伯特曲线
给定一个整数n输出,使用字符和,以ASCII n形式对Hilbert曲线进行第三次迭代。_| 这是前4个迭代: n=1 _ | | n=2 _ _ | |_| | |_ _| _| |_ n=3 _ _ _ _ | |_| | | |_| | |_ _| |_ _| _| |_____| |_ | ___ ___ | |_| _| |_ |_| _ |_ _| _ | |___| |___| …

13
防溢出缓冲器
背景 如今,程序员似乎无法保持其缓冲水平!错误的常见来源是尝试使用对于缓冲区而言太大的数组索引。您的任务是实现一个缓冲区,将大索引减小到缓冲区可以处理的大小。因为我确定了最适合每个人的最佳方法,所以您将根据我的精确规范实施此缓冲区。 总览 您有一个仅插入的缓冲区,该缓冲区的大小会随着向其添加元素而增加。缓冲区是零索引的,并且也以其当前大小为模索引。此挑战的特殊规则是: 在索引i处插入项目意味着要计算j,j = i % buffer.length()并将新项目插入列表中第j个项目之后。 唯一的特殊情况是缓冲区为空,因为算术模零不起作用。因此,如果缓冲区当前为空,则新项将为索引0。 如果缓冲区只有一个项目,那么您总是在第0个项目之后插入。这只是一般情况的一种情况。 如果缓冲区包含6个项目:[4, 9, 14, 8, 5, 2]并且被告知要10在索引15处插入新项目,则会找到15 % 6 == 3,然后10在8at索引3之后插入新项,从而得到结果缓冲区为 [4, 9, 14, 8, 10, 5, 2] 问题 编写一个函数或程序,该函数或程序接受正整数的有序列表以及要插入它们的正整数索引。 从空缓冲区开始,然后将指定的整数添加到缓冲区的相应索引处。 完成所有指定的插入之后,输出缓冲区中整数的有序列表。 这是一个代码挑战,所以最短的代码胜出。 输入准则 您可以选择输入列表,但您认为合适。例子: 配对列表: [ [1,1], [2,4], [3,9], [4,16], [5,25]...] 项目列表和索引列表: [1, 2, 3, 4, 5...], [1, 4, …
23 code-golf 

9
增量Quine
``您的任务是编写一个程序或函数,每次运行时输出其源代码的第一个字符,然后输出第二个字符,然后输出第三个字符。 例如,如果您的程序使用file foo中的语言,那么您应该获得类似于以下内容的输出:barbaz.bar λ bar baz.bar f λ bar baz.bar o λ bar baz.bar o 程序以这种方式打印源代码后,便可以执行任何操作。您可以修改文件的源代码,但是请记住,要打印的源代码是原始源代码。 这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。

17
实施秒表
实现一个简单的数字秒表,它将以秒和分钟为单位显示经过的时间,如下所述。 重要 请阅读“ 显示”和“ 控件”部分! 显示 经过的时间应以MM:SS格式显示,方法是替换以前显示的时间字符串“就地”(也可以清除整个屏幕或部分屏幕)。 秒表必须至少每秒更新一次。 例子: 0分0秒 00:00 0分33秒 00:33 1分50秒 01:50 最初,您可以从“ 00:00”开始,也可以从[00:00-59:59]范围内的任何其他值开始。 秒表到达时59:59,它应重置为00:00并重新开始。 只要您遵循常规格式,就可以使用其他基数(而不是十进制),甚至可以使用其他数字系统。 例如13:03可以显示为: 小数 13:03 十六进制 0D:03 Base64 N:D 虚构基数 10101:3 罗马数字 XIII:III 请注意,如果您使用非十进制数字系统/基数,则必须使用可打印的ASCII(或Unicode)字符对它进行编码,例如,不允许使用两个二进制(不可打印的)字节分别表示分钟和秒。 如果数值系统允许的话,还必须在输出上用零填充左键。 :用任何其他可打印字符(包括数字)替换分隔符也是可以的。 控制项 秒表应开始暂停,并保持此状态,直到用户通过按“控制”键(见下文)明确启动它为止。 如果,当秒表计数,用户按下“控制”再次键,秒表应该暂停,直到(保持当前的时间),“控制”键被按下一次。 的“对照”键可以是单个键击,例如s,或键,例如任何组合Ctrl+Shift+X,但它必须是“原子”,按压在序列多个按键,例如s然后Enter,被不允许。 必须使用相同的“控制”键(或组合键)来暂停和恢复秒表。 您必须使用特定的“控制”键,即不允许使用“任何键”。 另外,您也可以单击一次或双击,而不用按下“控制”键。 规则 这是代码高尔夫,以字节为单位的最短答案为胜; 适用标准代码高尔夫球漏洞; 您的程序必须(理论上)能够永远运行。

20
寻找最大素数
质数幂是一个正整数n,可以按n = p k的形式写,其中p是素数,k是一个正整数。例如,一些主要力量是[2, 3, 5, 4, 9, 25, 8, 27, 125]。 接下来,考虑2的质数幂。这些是[2, 4, 8, 16, ...]并且可以2 k的形式写成。当考虑低于20的素数幂时,将全部包括在内。但是,16是最大素数,在该范围内基本素数为2。素数幂p ķ是最大的范围,如果它是最高功率p在这个范围内。我们只对每个范围内的最大素数感兴趣,因此必须排除所有较低的素数。 您的目标是编写一个函数或程序,该函数或程序采用正整数n并输出该范围内的最大素数[2, 3, 4, ..., n]。 感谢@ Peter Taylor澄清了最大质数的定义及更多内容。 规则 这是代码高尔夫球,因此请使代码尽可能短。 的最大素数的权力可以任意顺序输出,但绝不能有重复。 测试用例 n result 1 [] 2 [2] 3 [2, 3] 4 [3, 4] 5 [3, 4, 5] 6 [3, 4, …
23 code-golf  math  primes 

1
疑难杂症
编写一个程序,根据结的结构绘制一个二维结图。打结恰恰是听起来的样子:一圈被绑住的绳子。在数学中,结图显示了一根绳子在其自身上方或下方交叉以形成结的位置。一些示例结图如下所示: 绳子交叉的那条线有一个断点。 输入:描述结的输入是整数数组。绳子交叉n次的结可以表示为n个整数的数组,每个整数的值都在[0,n-1]范围内。让我们把这种阵列ķ。 要获得描述结的数组,请对段0到n-1中的每一个进行编号。段0应该通向段1,应该通向段2,应该通向段3,依此类推,直到段n-1环回并通向段0。当另一段绳子越过段时,段结束(由图中的折线表示)。让我们来看看最简单的结-三叶结。在对段进行编号后,段2越过段0时结束。当段0越过时,段1结束;当段1越过时,段2结束。因此,描述结的数组为[2,0,1]。通常,段x从段x-1 mod n离开的地方开始,到段K [x]越过它的地方结束。 下图显示了结图,带有标记的段和描述结的相应数组。 顶部的三幅图是真实的结,而底部的三幅图是绳索的环,它们自己交叉但实际上并未打结(但仍具有相应的代码)。 您的任务是编写一个函数,该函数采用一个整数K数组(您可以称其为不同)来描述一个结(或实际上未打结的绳索环),并生成相应的结图,如上所述。例子。如果可以,请提供代码的原始版本或说明,并提供示例代码输出。相同的结通常可以用多种不同的方式表示,但是如果函数输出满足的结图将输入作为其可能的表示之一,则您的解决方案是有效的。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。代表绳索的线的厚度可以为1像素,但是越下和越线必须清楚地区分(绳索的断口尺寸应比绳索的厚度大至少在任一侧至少一个像素) 。 我将对依赖于内置结理论功能的答案进行投票,但是最后选择的答案不能依赖于内置结理论功能。 我对我的记法所了解的一切:我相信有些值序列似乎并不对应于任何结或不结。例如,似乎无法绘制序列[2、3、4、0、1]。 除此之外,假设您进行了交叉,并从该交叉处开始,沿着绳索的一个方向前进,并用成功更大的积分值标记遇到的每个未标记的交叉处。对于交替的结,有一种简单的算法可以将我的符号转换为这样的标签,对于交替的结,将这个标签转换为高斯代码很简单: template<size_t n> array<int, 2*n> LabelAlternatingKnot(array<int, n> end_at) { array<int, n> end_of; for(int i=0;i<n;++i) end_of[end_at[i]] = i; array<int, 2*n> p; for(int& i : p) i = -1; int unique = 0; for(int i=0;i<n;i++) { if(p[2*i] < …

16
随机排列一个破烂的数组
参差不齐的数组是其中每个元素都是未知数量的正整数的数组。 例如,以下是参差不齐的数组: [[1,2,3],[4],[9,10]] Shape: 3,1,2 [[1],[2],[3]] Shape: 1,1,1 [[1,2,3,4,5,6,8]] Shape: 7 以下不是破烂的数组: [1] Each element will be an array [] The array will contain at least 1 element [[1,2,3],[]] Each subarray will contain at least 1 integer 您需要输入一个衣衫array的数组,然后返回一个带有乱码整数的衣衫array的数组 输出数组必须与输入数组具有相同的形状。我们将数组的形状定义为每个子数组的长度。 每个整数必须有同样可能出现在每个可能的位置。 您可以假设语言的内置随机数是随机的。 例如,如果我通过了: [[4],[1,2,3],[4]],那么[[1],[4,4,2],[3]]将是一个有效的输出,但[[4,1,3],[3],[4]]还是[[4],[4],[1,2,3]]不肯。

16
打高尔夫球,不断成长的辫子
编织物说明 在此编织物中,当一条线穿过另一条线的顶部时,它会将另一条线的值加到自身上,并且所有其他条线值都会通过。辫子有三股,每股都从1开始。第一个交叉点是最中间的那根交叉点。下一个交叉点是跨过新的中间链(最左边的链)的最右边的链。重复这两个步骤。换句话说,第一个交叉点是[a, b, c] -> [b, a+b, c],第二个交叉点是[a, b, c] -> [a, b+c, b]。这里使用这些规则是编织的前六个级别: 1,1,1 1,2,1 1,3,2 3,4,2 3,6,4 6,9,4 你的任务 编写一个接受程序,接受整数作为编织级别的程序或函数,并输出该编织级别的三个值。您必须指出您的水平是从零开始还是从一开始。输入和输出可以采用任何合理的格式,并且允许尾随空白。 测试用例(基于1) 1 -> 1,1,1 2 -> 1,2,1 5 -> 3,6,4 10 -> 28,41,19

5
为我生成一个QFP芯片!
为我生成一个QFP芯片! 在沙盒中! QFP是一种电气元件的形状因数,其中引脚从芯片的侧面伸出。这是典型的QFP组件的图片: 您会看到,通用公式是具有4个边数相等的引脚。 您的挑战是创建一个使用整数的程序,该程序代表一侧上的引脚数,并创建带有编号引脚的ASCII QFP组件。 输入: 一个整数,代表一侧上的引脚数 输出: 带有适当引脚分配的ASCII QFP芯片。 例: 输入1 4 ┌┴┐ 1┤├3 └┬┘ 2 输入2 87 ┌┴┴┐ 1┤├6 2┤├5 └┬┬┘ 34 输入:12 444444444333 876543210987 ┌┴┴┴┴┴┴┴┴┴┴┴┴┐ 1┤├36 2┤├35 3┤├34 4┤├33 5┤├32 6┤├31 7┤├30 8┤├29 9┤├28 10┤├27 11┤├26 12┤├25 └┬┬┬┬┬┬┬┬┬┬┬┬┘ 111111122222 345678901234 规则: 所有QFP芯片必须按照ascii的规定进行密封和密封。间距是最重要的。微处理器内部的灰尘是坏东西! 引脚编号必须按照示例进行(从左至右,从上至下,逆时针编号) 您可以从0开始编号,但这不会影响芯片(输入12仍需要每侧12个引脚) 输出中唯一有效的字符是1,2,3,4,5,6,7,8,9,0,┌,┴,┐,├,┘,┬,└,┤,空格和换行符。 允许使用所有语言的编码,但是您的输出必须与上述规则一致。 …

15
跟着我重复!
给定一个字符串作为参数,输出最长的不重叠重复子字符串的长度;如果没有这样的字符串,则输出零。 您可以假设输入字符串不为空。 例子 abcdefabc:子字符串abc在位置1和7处重复,因此程序应输出3 abcabcabcabcab:abcabc或bcabcaor cabcab重复,因此程序应输出6。(子字符串abcabcabcab也被重复,但是出现的部分重叠,因此我们不接受它)。 aaaaaaa:aaa例如在位置1和4处重复,因此程序应输出3 abcda:a重复,因此程序应输出1 xyz:没有重复的字符串→ 0 ababcabcabcabcab:应返回6 这是代码高尔夫球,因此最少的字节获胜。
23 code-golf  string  code-golf  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  hexadecimal  code-golf  code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

8
最小数量的连续单调子序列
挑战说明 甲单调序列是数字的序列[a1, a2, ..., an],使得 a1 <= a2 <= ... <= an或a1 >= a2 >= ... >= an。[1, 3, 3, 7, 9, 13, 13, 100]是单调(不递减)的子序列,以及[9, 4, 4, 3, 0, -10, -12](此不递增),但[1, 3, 6, 9, 8]不是。给定一个整数列表(以任何合理的格式),输出最小的数字N,以便可以将这些整数的序列拆分为N单调序列。 例子 [1, 3, 7, 5, 4, 2] -> [[1, 3, 7], [5, 4, 2]] -> …

14
如何绘制融化的冰柱
雕塑家的任务是为格陵兰新博物馆创建冰柱雕塑。老板已给他指定了规格,该规格由两个数字组成:[s,m]或尺寸和熔体。大小必须为奇数。他得到了一些冰柱的照片: vvvvv [5, 0] vvv v vvvvvvv [7, 0] vvvvv vvv v vvvvvvv [7, 2] vvvvv vvvvvvv [7, 3] vvv [3, 1] 他需要一个帮助画画的程序。允许使用任何语言。程序需要接受S和M,任何可接受的输入方法。然后,您必须打印出它的ascii艺术表示。 S是v第一层上有多少个。M是从底部切出多少层。 这是代码高尔夫球,因此通常情况下,此比赛是基于字节的。空白不计入字节计数。最少字节获胜。 编辑: 您将永远不会获得不画任何数字的一组数字,例如[5,3]。检查代码不但是需要。

7
极坐标图上行进的两点之间的距离
问题简要说明 编写一个程序,查找仅在从原点发出的光线和以原点为中心的圆上传播的两点之间的最小距离。 前提说明 现在,让我们想象一下我们在飞机上,并且只允许以特殊方式旅行。我们被允许乘坐任何从原点发出的射线旅行。 我们也可以在以圆为中心的任何圆上旅行 现在我们的目标是从飞机上的一个点移动到另一点。但是,我们不能只沿一条简单的欧几里得路径行进,只有当点恰好落在从中心发出的光线上时,我们才能这样做。 我们可以沿着这条路旅行,因为它落在我们的光线之一上。 我们还可以在以原点为中心的圆上旅行。 例子 现在是挑战: 我们必须以最短的路径从一个点到达另一个点。通常,这是绕圈和射线旅行的组合。 但是,这也可能在两条光线上传播。 有时,存在两条经过最小距离的路径。 问题 您的挑战是编写一个程序,如果我们遵循这些规则,当给定两个点时,它们将为我们提供它们之间的最小距离。输入可以是矩形或极坐标形式,并且输出应为一个数字,即两者之间的距离。 测试用例 (带矩形输入) (1,1) (1,-1) -> ~ 2.22144 (0,0) (1, 1) -> ~ 1.41421 (1,0) (-0.4161 , 0.90929) -> ~ 2 (1,1) (1, 0) -> ~ 1.19961 (1,2) (3, 4) -> ~ 3.16609

26
具有素数的素数
任务 查找所有非负整数,直到并包括给定的非零正整数n,它们都是质数,1's并且0's在其二进制表示形式(无前导零)中的和的计数也都是质数。 这是前五个素数, 17, 19, 37, 41, 79 10001, 10011, 100101, 101001, 1001111 澄清和规则 接受默认的I / O方法。 答案可以是程序或函数。 如果没有这样的素数,则输出垃圾或什么都不输出。 禁止出现标准漏洞。 2 3 5 7之所以没有列入清单,是因为它们的二进制表示形式中0's和的出现次数1's不是素数。考虑7其二进制表示为111,这里0出现零次,而零不是素数。 允许内置。 以字节为单位的最短代码胜出! 测试用例 10 [] 100 [17,19,37,41,79] 150 [17,19,37,41,79,103,107,109,131,137] 显示代码段 /* Configuration */ var QUESTION_ID = 107050; // Obtain this from the url // It will …

9
旅行南瓜问题
背景: 杰克(Jack)是一个南瓜,每个万圣节都喜欢在南瓜地附近惊吓村庄的居民。但是,每年有人点燃蜡烛后,在蜡烛熄灭之前,他都有有限的时间惊吓所有人,因此无法惊吓更多的村民,因为没人能看到他。在过去的几年中,由于决策不力,他只能吓到少量村庄,但现在有了您的帮助,他将能够吓到尽可能多的村庄! 任务: 给定村庄位置列表和蜡烛寿命,输出杰克可访问的最大村庄数。您不必打印路径本身。 输入: 蜡烛的寿命和笛卡尔坐标系中的村庄位置列表。Jack起源的南瓜补丁始终为0,0。您可以按照自己的意愿格式化输入。为了简化Jack的动作,他只能水平,垂直或对角移动,这意味着他的蜡烛每移动一次将失去1或1.5(对角线需要更长的时间)生命单位。寿命小于或等于0时,蜡烛会烧坏。 输出: 一个整数,它等于蜡烛熄灭前Jack可以访问的最大村庄数。 规则: 这是代码高尔夫球,因此以字节为单位的最短代码获胜。不允许出现标准漏洞。 测试用例: // Format [lifespan] [list of village coordinates] -> [maximum visit-able villages] 4 -1,0 1,0 2,0 3,0 4,0 5,0 -> 3 4 1,1 2,2 3,3 -> 2 5 1,1 2,1 3,1 4,1 5,0 5,1 -> 4

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.