Questions tagged «code-golf»

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

30
Anagram Quine高尔夫
在这个问题中,我要求您根据其输出猜出一个七巧板奎因。但是,看来我们没有要打高尔夫球七字谜的问题。因此,您的任务将是制作最短的字谜奎因。 什么是七巧板奎因? anagram quine是一个非空程序,会打印其原始源代码以外的源代码的anagram。 这是Python 2中的字谜奎纳的示例: print`'`print`*2'*2` 您不应该阅读自己的资料来应对这一挑战。

25
对数刻度用于退出
每个人都知道对数刻度适合戒烟者。因此,您必须编写一个程序或函数,该程序或函数以给定底数的对数刻度使条形图无效。 条形图输入被视为一个单独的字符串,是一个条形列表,对数刻度条形图的每个条形都由您选择的可打印(或空白)定界符分隔(因此0x09-0x0A + 0x20-0x7E),由您选择的可打印的非空白(so 0x21-0x7E)填充字符组成。 程序或函数输出一个单个字符串,该字符串是一个小节列表,其中每个小节由输入所分隔的相同定界符分隔,并由组成输入的相同填充符组成。 例 我们选择定界符“ \ n”(一个换行符)和填充符“#”。传递给我们的程序或函数的输入是: base = 2 和string = #### ## ###### ### 该代码将发现这些条的长度为[4,2,6,3]。它将以base 2为基础计算每个长度的反对数,以获取[2^4,2^2,2^6,2^3]= [16,4,64,8]。然后,以线性比例尺格式输出长度: ################ #### ################################################################ ######## 输入输出 您的程序或函数可以以任何合理的格式输入和输出。 输入基数保证为大于1的整数。您可以假定基数小于256。保证字符串输入与regex完全匹配(f+s)+f+,其中f和s分别用填充符和分隔符替换。 字符串输出必须完全匹配regex (f+s)+f+,其中f和s分别用相同的填充符和分隔符替换。输出可以选择包含尾随换行符。 输出和输入也可以是字符串列表,而不是用子字符串定界,尽管必须能够理解哪个条是哪个。 测试用例 (假设填充#符为,分隔符为\n) base - input string - output string ----- 2 - #### ## ###### ### - ################ …

10
睡莲跳
在此挑战中,您需要模拟一只青蛙在睡莲上来回跳跃。池塘是无限大的,有成排的无限数量的睡莲,青蛙可以随意跳越多的睡莲。 这只青蛙喜欢来回 跳跃:向前跳跃后,他总是向后跳,反之亦然。 您会收到一个代表他跳跃的整数列表。您需要输出他的跳跃结果。 例如,假设您通过了[2,3,6,8,2]: 我们的青蛙从向前跳两个睡莲开始: _2 然后3个睡莲垫退回: 3__2 然后向前放6个睡莲: 3__2__6 8回: 8_3__2__6 然后最后,向前放2个睡莲(注意2个如何覆盖3个): 8_2__2__6 更明确地说:您的输入是一个数字数组S,需要S[K]在position处输出S[K] - S[K-1] + S[K-2] - S[K-3]...。 如果要在某个位置打印多个数字,请仅打印索引最高的数字。 你要使用_某一特定位置是空的 如果一个数字有多个数字,则不会占用多个位置。(换句话说,一个位置可以包含多个字符) 您可以假定列表是非空的,并且所有整数都大于0。 测试用例: 5 ____5 2,2 2_2 4,3,2,1 3124 5,3,2,1 _3125 2,3,6,8,2 8_2__2__6 10,3,12,4,1,12,16 ___12__3__10____41__1216 100,4,7,2,2 _______________________________________________________________________________________________4___1002_2 这是一个代码高尔夫球,因此请使用尽可能少的字符回答!
24 code-golf  string 

11
计数单位平方圆通过
写一个程序或函数给定的整数半径ř回报单元的方格数与半径的圆周ř以原点为中心穿过。如果圆正好通过网格上的一个点,该点不算作通过相邻单位正方形的点。 这是r = 5的图示: Kival Ngaokrajang的插图,可在OEIS上找到 例子: 0→0 1→4 4→28 5→28 49→388 50 →380325 →2540 5524→44180 5525→44020

12
交流功率斐波那契数列
定义 交流功率斐波那契数列形成如下。 从空序列开始,并将n设置为1。 用重复计算第n 个非负斐波那契数f n。0是第一个,1是第二个,第三个,2是第四个。所有其他值都是通过将序列中的前两个数字相加得出的,因此3 = 1 + 2是第五个,5 = 2 + 3是第六个,依此类推。 如果n为奇数,则更改f n的符号。 将f n的2 n-1个副本附加到序列中。 递增n并返回到步骤2。 这些是APF序列的前一百个术语。 0 1 1 -1 -1 -1 -1 2 2 2 2 2 2 2 2 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 …

2
编写事件令牌发布器
背景 事件是一种非常不常见的编程语言,它的令牌列表不是预先确定的,而是从输入中推断出来的。这样,对事件程序进行标记可能会非常困难,尤其是如果您想高效地这样做。这项任务是您自己做的。 任务 您的程序将被提供一个字符串作为输入。这是Incident用于标记它的算法: 完全以三种方式识别作为输入的子字符串出现的所有字符串(即,该字符串在输入中恰好出现了三个)。 丢弃所有这些字符串中的任何一个,这些字符串是另一个此类字符串的子字符串(例如,对于input ababab,剩下的唯一字符串将是ab,not a或b,因为a和b都是的子字符串ab)。 丢弃输入中重叠的所有字符串。(例如,aaaa正好包含的三个副本aa,但是这些副本在第二个和第三个字符处重叠,因此将被丢弃。同样,在中abababa,存在的三个副本ab和的三个副本ba,但第二个至第六个字符分别位于的重叠ab和ba,这样既ab和ba将被丢弃)。 此时剩下的任何字符串都是程序使用的标记。将原始输入标记为这些标记的序列(由于上一步中的丢弃,只有一种方法可以做到)。输入中不属于任何标记的任何字符都将被视为注释并被丢弃。 您的程序必须将字符串作为输入,并返回该字符串的相应标记化(标记列表,每个标记均表示为字符串)作为输出。此外,这必须至少适度地有效地完成;具体来说,程序必须在二次时间(“ O(n²)”)或更短的时间内运行。(顺便提一下,几乎肯定有可能比平方更快,但这不是最快算法,因此可以随意使用最复杂的算法,找到适合复杂度范围的算法。) 澄清说明 尽管理论上事件程序可以包含256个八位字节中的任何一个,但出于此挑战的目的,您的程序只能处理由可打印ASCII(包括空格),换行符和制表符组成的输入,这是可以接受的。(所有已知的突发事件程序都将自己限制在此子集中)。请注意,空格/换行符/制表符不是特殊的,可以出现在标记的中间。事件将所有256个八位位组视为不透明。 “二次时间”的定义是“如果输入的大小加倍,则程序将以不超过常数加4的速度慢运行”,即,如果t(x)是程序花费的最长时间。处理一个大小为x的输入,则必须有一个常数k,使得所有x的t(2 x)<4 t(x)+ k。请记住,比较字符串所花费的时间与字符串的长度成正比。 如果以具有无限内存并使用无界整数的语言(可能是假设的)变体运行,则从理论上讲,您的程序应该能够处理任何长度的输入程序(如果在实践中由于以下原因而无法达到此目标,则可以:语言的整数或内存实际上是有限的)。您可能会假设(出于计算复杂度的目的)可以在恒定时间内比较不大于输入长度的整数(尽管请记住,如果使用较大的值,例如由于将输入转换为整数)整数),它们将花费一定的时间与它们所拥有的位数成正比。 您可以使用适合复杂性范围的任何算法,即使它没有遵循与上面发布的算法相同的步骤,只要它能产生相同的结果即可。 这个难题是关于标记输入,而不是真正格式化输出。如果以您的语言输出列表的最自然的方式是模棱两可的格式(例如,当字符串包含文字换行符或字符串之间没有定界符时,则用换行符分隔),请不必担心输出结果最终会模棱两可( (只要列表是实际构建的)。您可能需要制作第二个版本的提交文件,以产生明确的输出,以帮助测试,但是原始版本是计分的版本。 测试用例 对于以下输入字符串: aaabcbcbcdefdfefedghijghighjkllkklmmmmonono-nonppqpq-pqprsrsrstststuvuvu 您的程序应产生以下输出列表: a a a bc bc bc d e f d f e f e d gh gh gh k l l k k l …

16
运行合并冲突
当使用git之类的工具合并两个文件时,可能会检测到冲突并将其添加到合并结果中。 这两个文件的合并: 我的档案: Common line of code 1 Common line of code 2 my lines Common line of code 3 Common line of code 4 他们的档案: Common line of code 1 Common line of code 2 their lines Common line of code 3 Common line of code 4 会导致: Common …

9
计算幂级数系数
给定一个多项式p(x)整系数和常数项p(0) = 1 or -1和非负整数N,返回N功率SERIS的个系数(有时称为“泰勒级数”)f(x) = 1/p(x)的开发x0 = 0,即程度的单项式的系数N。 给定条件确保幂级数存在并且其系数为整数。 细节 与往常一样,可以采用任何方便的格式来接受多项式,例如,p(x) = x^3-2x+5可以将系数列表表示为[1,0,-2,5]。 在处f开发的函数的幂级数0由下式给出 并且N-th系数(的系数x^N)由下式给出 其中表示的n-th导数f 例子 多项式的p(x) = 1-x结果是几何级数,f(x) = 1 + x + x^2 + ...因此输出应该是1全部的N。 p(x) = (1-x)^2 = x^2 - 2x + 1结果在衍生的几何级数的f(x) = 1 + 2x + 3x^2 + 4x^3 + ...,所以输出为N是N+1。 p(x) = …

18
化学101-元素周期表简介
题 Given the atomic number of an element在[1-118]范围内,输出group and period元素的,如下面的元素周期表所示。 对于镧系和Act系元素系列(范围[57-71]和[89-103])L中的元素,应改为返回镧系元素和Afor系元素 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 [资源] 测试用例 由于只有118种可能的输入,因此下面给出了预期输入和输出的完整列表。 手工创建,如果有错误,请告诉我! 1,1,1 2,18,1 3,1,2 4,2,2 5,13,​​2 6,14,2 7,15,2 8,16,2 9,17,2 10、18、2 11,1,3 12,2,3 13,13,3 14,14,3 15,15,3 16,16,3 17,17,3 18、18、3 19,1,4 20、2、4 21、3、4 22、4、4 23、5、4 24、6、4 25,7,4 26,8,4 27,9,4 28,10,4 29,11,4 30,12,4 31,13,4 32、14、4 33,15,4 …

18
Google的平均长度
我搞砸了Pyth的url请求功能,并注意到google总是给我一个长度稍有不同的响应,通常是~10500字符。 因此,您面临的挑战是从中打印html响应的平均长度http://google.com。 眼镜 您将输入一个输入n,即要发出的请求数。 对于每个请求,您将发出一个HTTP get请求。 您将计算响应正文(html文本),而不是标题。 输出响应长度的算术平均值。 您只能访问url http://google.com,而不能访问其他任何URL 。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 输入的样本输出10: 10560.1 (我urllib为此使用了Python ) PS:有人知道为什么Google这样做吗?

11
我的航站楼正在下雨!
挑战说明 您必须显示终端机中降雨的模拟。 在下面给出的示例中,它随机添加100个雨滴(使用您的语言提供的默认随机函数)坐标,等待0.2秒,然后再次重绘,直到给定时间到期。任何字符都可以用来表示雨滴。 参量 重绘之间的等待时间(以秒为单位)。 下雨的时间到了。这只是代表迭代次数的整数。[因此,下雨可见的净时间是该整数乘以等待时间] 雨结束时显示的信息。(必须居中) 屏幕上显示的雨滴数。 规则 应该使用一个字节来表示雨滴,它可以是任何东西,甚至包括猫和狗。 它不必响应终端大小,这意味着您不必处理各种终端大小的错误。您可以自行指定终端的宽度和高度。 适用打高尔夫球的标准规则。 代码样本和输出 这是使用ncurses用python 2.7编写的非高尔夫版本。 import curses import random import time myscreen = curses.initscr() curses.curs_set(0) # no cursor please HEIGHT, WIDTH = myscreen.getmaxyx() RAIN = '/' # this is what my rain drop looks like TIME = 10 def make_it_rain(window, …

30
一起配音
在4chan上,流行游戏获得了。网站上的每个帖子都会获得一个顺序的帖子ID。由于您无法影响或确定它们,因此人们会尝试猜测(至少是一部分)他们自己的帖子编号,通常是前几位数。游戏的另一个版本称为配音,其目标是在数字的末尾(例如1234555)获得重复的数字。 您的任务(如果希望接受)是编写一个程序,该程序将帖子ID作为输入(标准整数,可以假设在2 ^ 32以下),并返回最后有多少个重复数字。 规则 不允许出现标准漏洞。 该程序可以是一个函数,完整程序,REPL命令,实际上可以执行任何操作,只要运行它不需要外部未计数的代码/参数即可。 输入可以来自STDIN,函数参数,命令行参数,文件,任何适合您的输入。 测试用例 Input: 14892093 Output: 1 Input: 12344444 Output: 5 Input: 112311 Output: 2 Input: 888888 Output: 6 Input: 135866667 //Post number I got on /pol/ few days ago, rip Output: 1

7
种植二元森林!
受A014486的启发。 挑战 给定以10为底的整数输入,构造一个与输入对应的二进制森林的表示形式。表示形式包括但不限于嵌套数组和字符串。 怎么样? 将输入转换为二进制。1s代表分支,0s代表叶子。 为了使它更容易理解,我们以834(二进制的1101000010)为例。 我们从第一个数字开始。第一位数字是1,因此我们绘制分支: \ / 1个 或作为数组, {{1}} 下一个数字是1,因此我们绘制了更多分支(从左到右): \ / 1个 \ / 1个 或作为数组, {{1, {1}}} 下一位数字是0,因此我们放置了一片叶子: 0 \ / 1个 \ / 1个 或作为数组, {{1, {1, 0}}} 下一个数字是1,因此我们放置一个分支: \ / 0 1 \ / 1个 \ / 1个 或作为数组, {{1, {1, 0, {1}}}} …

12
数组统一
介绍 考虑两个相同长度的数组,例如A = [0,1,0,2]和B = [-1,1,2,2]。假设我们知道它们的内容在某种意义上是逐项相等的: 0等于-1, 1等于1, 0等价于2和 2等同于2。 等价是可传递的:-1和0等价,并且0和2等价,所以-1和2也等价。的统一的A和B是其中的每一个项目的阵列A(或B)已取代这相当于它的数量最多。在这种情况下,统一为[2,1,2,2]。 任务 编写一个程序或函数,该程序或函数采用两个相等长度的非空整数数组,并输出它们的统一。您也可以就地修改输入之一,而不用返回。最低字节数获胜。 测试用例 [0] [0] -> [0] [1] [2] -> [2] [0,-1] [-1,-1] -> [0,0] [0,1,0] [2,1,0] -> [2,1,2] [1,2,3] [0,0,1] -> [3,3,3] [0,1,0,2] [-1,1,2,2] -> [2,1,2,2] [1,0,1,-4] [-3,-1,-2,2] -> [1,0,1,2] [1,2,3,-2] [1,0,-3,-2] -> [1,2,3,-2] [-3,-2,-1,0,1] [-1,-1,-1,-1,-1] -> [1,1,1,1,1] …

19
ASCII艺术“飞行模拟器”
编辑 在我的错字之后,似乎在原始帖子中出现了一些混乱,该帖子使用小写字母o定义平面,然后使用大写字母定义。不幸的是,此错误并未在沙箱中被发现。由于很多成员都写了答案,而且错别字是我的错,所以在飞机的定义中允许使用大写或小写的o。我为此添加了一条新规则。 背景 我喜欢ascii艺术动画,因为我倾向于称它们为动画,所以这里是另一个动画。我认为这实施起来并不难,因此有望得到一些简短而有趣的答案。 给所有社区成员 如果您的答案有所改善,请修改为 旧字节数新字节数 这样我们就可以看到您的进度。谢谢! 挑战 这是一个ascii飞机 --O-- 这是一条ascii跑道 ____| |____ 飞机从跑道上方的5条新线开始。为了防止公制和英制之间发生冲突,并使之成为真正的国际挑战,我不会提及米或英尺。例: --O-- ____| |____ 飞机必须正好降落在跑道中间,如下所示: ____|--O--|____ 输入项 平面的初始水平位置由整数输入定义,该整数输入用于参考左翼的尖端,即介于0到10之间(含0和10)。 输出量 必须显示飞机飞行的每个阶段。以下示例(输入= 10): --O-- ____| |____ --O-- ____| |____ --O-- ____| |____ --O-- ____| |____ --O-- ____| |____ ____|--O--|____ 为了简单起见,我们忽略了透视定律。靠近跑道时,跑道保持不变。 规则 更新平面的中间可以是大写或小写的o,但是在整个代码中选择的哪个必须一致。如果您的语言不支持上述字符,请随意使用其他ascii字符。 平面每帧下降1行。 飞机每次下降一行,只能向左或向右移动1个空间。它不必在下降的每一行上移动。只要它在跑道上完成,它就取决于您向右或向左移动。你是飞行员! 无需错误处理。您可以假设输入将始终是一个有效的整数,范围从0到10(含0和10)。 输出必须仅包含上面显示的字符(如果您的语言不支持它们,请参见编辑的第一条规则),并且必须具有相同的大小,即必须以6行高,15个字符宽开头。如上例所示,高度可以随着进度的增加而减小。 程序或函数很好,但必须产生如上所述的输出。 前导/尾随空格/换行符对我来说很好。 …

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.