Questions tagged «code-golf»

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

22
列表本身的n次的笛卡尔积
当给定一个值列表和一个正整数时n,您的代码应输出该列表的笛卡尔乘积及其n时间。 例如,使用伪代码,您的函数可能类似于: for x1 in list: for x2 in list: for x3 in list: ... for xn in list: print x1, x2, x3, ... , xn 例: repeated_cart([1,2,3], 3) 1 1 1 1 1 2 1 1 3 1 2 1 1 2 2 1 2 3 1 3 1 …

30
字母位置查找器
受到Codewars Kata的启发。 您的目标是采用这样的输入字符串: "'Twas a dark and stormy night..." 并返回一个字符串,其中包含字母中每个字符的位置,以空格分隔并忽略非字母字符,如下所示: "20 23 1 19 1 4 1 18 11 1 14 4 19 20 15 18 13 25 14 9 7 8 20" 对于其他挑战,您可以用+ 27替换原始字符串中的任何数字字符。例如,"25"将变为"29, 32"。这是完全可选的。 您必须使用1索引('a'==1,'b'==2,等) 附加规则: 您必须返回字符串,而不是数组。 尾随空格可以。 获胜者的字节数最少。 祝好运!


2
使用numpy,scipy或pylab打高尔夫球的技巧
还有已经为Python技巧的完整列表在这里,所以我要问的是专门适用于使用技巧numpy,scipy或pylab库。 这些既可以是已经使用缩短代码的方法,也可以是numpy通过使用这些库缩短常用python操作的方法。 请给每个答案一个提示。
10 code-golf  tips  python 

6
自验证三角棋盘程序
棋盘程序是一个程序,其中每个字符的序数值从偶数到奇数交替,不包括行终止符(可以是任何标准行尾)。 三角程序是这样的程序,其中每行比前一行具有一个附加字符,而第一行具有一个字符。您不需要处理空输入。 您的任务是构建一个程序,以验证给定的输入符合那些条件,并在程序符合条件时输出/返回真值,否则返回虚假值。 您的程序还必须满足这些条件。 有效程序的示例 G `e @u^ 5r{B ^ cB +$C VA01 规则 只要字符的奇偶性交替,您的程序就可以以奇数或偶数字节开头。 您的程序必须验证以奇数或偶数字符开头的程序。 对于Unicode字符,基础字节值必须具有交替的奇偶校验。 您可以假定输入仅包含可打印字符。如果您的程序包含不可打印的内容,则它仍然应该能够进行自我验证。 您的程序可能包含一个尾随换行符,验证不需要这样做,因为您可以假定在验证之前已将其删除。 禁止出现标准漏洞。 每种语言中以字节为单位的最短代码获胜。

7
在那里,我将其固定(用绳子固定)
相关:横向比较相似(但容易得多)的挑战:在那里(用胶带固定) 挑战: 给定仅包含大写和/或小写字母(以您喜欢的为准)和换行符的字符串,请rope垂直放置以对其进行修复。为此,我们检查字母表中两个相邻字母的差异(忽略环绕并且仅向下移动),并在需要的地方填充ROPE/ rope。 注意:此挑战与“ 我已解决(使用磁带)”挑战之间的另一个主要区别是,这次我们没有浪费rope我们的时间tape(在挑战的第一部分中,@ JonathanAllan建议)。 例: 输入: abc bcd ddd eex gfz hka imh 输出: abc bcd Rdd deE efR OPO gEP hRE iOR kO PP mE R O P E R O P E R O x P z a E R O P E R h …

4
平方根的数字和的连续分数
介绍 您的任务是在2的平方根和3的平方根的按位和的连续分数表示中生成前1000个项。 换句话说,准确产生以下列表(但输出格式灵活) [2, 6, 1, 5, 7, 2, 4, 4, 1, 11, 68, 17, 1, 19, 5, 6, 1, 5, 3, 2, 1, 2, 3, 21, 1, 2, 1, 2, 2, 9, 8, 1, 1, 1, 1, 6, 2, 1, 4, 1, 1, 2, 3, 7, 1, 4, 1, …

9
马尔可夫过程的收敛
挑战 给定一个左或右随机矩阵,其中x的极限接近矩阵的无穷大,x的幂接近具有所有有限值的矩阵,则返回矩阵收敛到的矩阵。基本上,您想保持矩阵自身相乘,直到结果不再改变为止。 测试用例 [[7/10, 4/10], [3/10, 6/10]] -> [[4/7, 4/7], [3/7, 3/7]] [[2/5, 4/5], [3/5, 1/5]] -> [[4/7, 4/7], [3/7, 3/7]] [[1/2, 1/2], [1/2, 1/2]] -> [[1/2, 1/2], [1/2, 1/2]] [[1/3, 2/3], [2/3, 1/3]] -> [[1/2, 1/2], [1/2, 1/2]] [[1/10, 2/10, 3/10], [4/10, 5/10, 6/10], [5/10, 3/10, 1/10]] -> [[27/130, …
10 code-golf  matrix 

3
RoboZZle口译员
您的任务是编写RoboZZle解释器。如果您不熟悉该游戏,请在robozzle.com上观看视频或阅读下面的说明。 机器人生活在一个正方形的红色,绿色,蓝色或黑色正方形网格中。黑色方块无法访问。其他的则可以访问,其中一些包含星号。目标是收集所有星星,而不会踩到黑色方块或从地图上掉下来。机器人占据一个正方形并面向特定方向-左,右,上或下。它遵循类似汇编的指令,分为子程序F1,F2,...,F5。一条指令是一对谓词(“无”,“如果红色”,“如果绿色”,“如果蓝色”)和一个动作(“前进”,“左转”,“右转”), “将当前方块涂成红色”,“将其涂成绿色”,“将其涂成蓝色”,“什么都不做”,“调用F1”,...,“调用F5”)。对子例程的调用使用堆栈,并且可以是递归的。就像在常规编程中一样,在子例程的最后一条指令完成之后,从调用子例程的那一点开始执行。从F1的第一条指令开始执行,一直持续到机器人访问带有星星的所有正方形,或者机器人踩到黑色正方形或在地图外部或执行了1000条指令(谓词失败且“不执行任何操作”) (不计算在内),或者没有更多要执行的指令(堆栈下溢)。 输入: a-编码地图的12x16字符矩阵(通常用您的语言表示,例如字符串数组)对地图'#'进行编码- 不可访问的(黑色)正方形,'*'带有星星的正方形,'.'其余的 c-12x16字符矩阵,描述可访问正方形的颜色- 'R'(红色),'G'(绿色)或'B'(蓝色)。无法访问的方块将由三个中的任意字母表示。 y和x-机器人的基于0的行和列; a[y][x]保证是'.' d-的方向上的机器人朝向:0 1 2 3右,下,左,上,即朝向(y,x+1),(y+1,x),(y,x-1),(y-1,x) f-单个字符串,F1 ... F5的串联实现。每个实现都是谓词操作对的序列(可能为空)(每个子例程最多10对),以终止'|'。 谓词:'_'无,'r'红色,'g'绿色,'b'蓝色 动作:'F'向前,'L'向左'R'转,向右转,'r'涂红色,'g'涂绿色,'b'涂蓝色,'1'呼叫F1,...,'5'呼叫F5,'_'不执行任何操作 您不必像上面一样命名输入,但是它们的值必须与指定的相同。 输出:(1或true)如果机器人根据规则收集了所有恒星,则为0(false)。 范例: a=["################","################","##*....*...*#.##","##.####.#####.##","##.####.#####.##","##.####*...*#.##","##.########.####","##*........*#.##","################","################","################","################"] c=["RRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRR","RRRBBBBRGGGGRRRR","RRBRRRRGRRRRRRRR","RRBRRRRGRRRRRRRR","RRBRRRRRGGGBRRRR","RRBRRRRRRRRGRRRR","RRRBBBBGGGGBRBRR","RRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRR","RRRRRRRRRRRRRRRR"] y=2; x=6; d=2 // and then depending on "f": f="_FrLg2_1|_FbLrR_2||||" // result:1 f="_FrRg2_1|_FbLrR_2||||" // result:0 (stepped on a black square) f="_FrLrL_1|_FbLrR_2||||" // result:0 (1000-step limit …

26
加权平均-压力趋势问题
假设此阵列是过去28天内每天获得的俯卧撑次数: [ 20,20,20,30,30,30,30, 35,35,40,40,40,45,45, 50,50,50,50,50,50,50, 60,70,80,90,100,110,120 ] 如您所见,上周呈急剧上升趋势,这是我最感兴趣的数据。过去越远,我希望该数据在“平均值”中的作用就越小的次数。 为此,我想制定一个“平均”,其中每个星期都比前一周更有价值。 背景信息,不是此问题的一部分。 正常平均值: 所有值的总和/数量 对于以上: 1440/28 = 51.42857142857143 加权平均: 将阵列分成7组的4组,然后启动一个新阵列。 将第一个组添加到数组。 将第二组添加到阵列两次。 将第三组添加到数组三次。 将第四组添加到阵列四次。 由长度总结所有的新阵列的,和除法新阵列。 对于以上: 将数组转换为此: [ 20,20,20,30,30,30,30, # first week once 35,35,40,40,40,45,45, 35,35,40,40,40,45,45, # second week twice 50,50,50,50,50,50,50, 50,50,50,50,50,50,50, 50,50,50,50,50,50,50, # third week thrice 60,70,80,90,100,110,120, 60,70,80,90,100,110,120, 60,70,80,90,100,110,120, 60,70,80,90,100,110,120 # Fourth …

8
从构成完美正方形的序列中收集
给定序列OEIS A033581,它是无限序列,则第n个项(0索引)由封闭形式公式6×n 2给出。 您的任务是编写代码,该代码将输出序列中N个第一个数字集合的所有子集,以使子集的总和为一个完美的平方。 规则 N给出整数作为输入。 您不能重复使用已在总和中使用的数字。(也就是说,每个数字最多可以出现在每个子集中一次) 使用的数字可以是非连续的。 以最小的代码获胜。 例 给定的顺序为{0,6,24,54,96,...,15000} 所需的子集之一将是{6,24,294},因为 6+24+294 = 324 = 18^2 您需要找到给定范围内所有可能长度的所有此类集合。

3
使用质数形成列表
您已获得N堆硬币。您已决定将B 1,B 2,...,B N堆中的每堆划分为不同的人群。接收硬币的人数必须是质数,并且每一堆中分配给每个人的金额必须不同。 输入:N,B 1,B 2,...,B N(每堆硬币的数量)。 输出:NP 1,NP 2,...,NP N,其中NP是接收硬币的人数(素数)。如果这是不可能的,然后产生一些无法实现的结果(如0,-1,None,[],或"impossible"),或引发错误。 例: 3 7 8 9 输出: 7 2 3 因为7是唯一可以将7平均除的质数,所以8和2以及9和3也是相同的。此外,请注意(7/7 = 1)≠(8/2 = 4)≠(9/3 = 3 )。

1
挑战8:存储车运输计划!
<<上一页 感谢PPCG社区,圣诞老人现在已经平衡了他的储物车。现在,他需要将它们移入运输码头,以便可以将它们发送到装卸区。不幸的是,用来移动推车的轨道是一团糟,他需要弄清楚如何使它们四处走动而不会撞在一起! 挑战 您将获得每个推车的轨道,作为“标签”(或车站)列表。必须移动推车,以便在任何时间框架内,没有两个推车位于同一标签/站上。本质上,手推车在每个都有唯一标签的位置之间移动。 任务 给定每个购物车的轨道作为标签列表的列表(均为正整数),请确定何时应释放每个购物车,以便在尽可能短的时间内安全地将所有购物车发送到目的地。 这是整个轨道系统如何工作的解释。假设购物车i有时被t_i放到带有标签的轨道上T_i_1, T_i_2, ..., T_i_n。然后,在t_1到t_i-1,车i不上格,可以忽略。 在时间范围内t_i,购物车在标签上T_i_1,对于t_k从t_i到的每个时间范围t_i+n(包括半值),购物车都在标签上T_i_k+1。 对于之后的所有时间范围(包括之后)t_i+n,购物车都位于其目的地,并且不再位于网格上。 所花费的总时间t_T是系统中轨道仍在推车上的最后时间范围。 技术指标 给出的轨道系统,返回时间帧的列表[t_1, t_2, ..., t_n],其中i个车开始在时间t_i,使得没有其他的安排将使车安全地到达目的地,随着时间较少总量。 在“安全”方面,如果在任何时间框架t_1,以t_T有任何标签上超过一个购物车,然后他们碰撞和安排是不“安全”。请注意,两个手推车可以从a, b移到b, a,但仍然是“安全的”,因为轨道是双向的。 格式化规格 输入将以任何合理格式的正整数矩阵形式给出。输出应以任何合理格式的正整数列表形式给出。您可以在零索引的时间范围内提供输出,因此输出将是任何合理格式的非负整数列表。 规则 适用标准漏洞 这是一个代码高尔夫球,所以最短答案以字节为单位 没有答案将被接受 测试用例 Input -> Output [[1, 2, 3], [4, 5, 6], [7, 8, 9]] -> [1, 1, 1] [[1, 2, 3], [1, 2, 3]] …

4
我有许可吗?
挑战 给定一个指示文件的UNIX权限及其所有权(用户ID和组ID)的符号表示形式的字符串,请确定给定的用户是否A具有读取/写入/执行该文件的权限。 相关的。 UNIX系统中的权限 在UNIX中,每个文件都有三类权限(user,group和others)和所有权,包括文件所属的用户和组。 符号表示法由十个字符组成。在这个挑战中,第一个角色并不重要。其余的9个字符位于三个字符集的三个集合中,分别代表用户,组和其他类的权限。每组中的字符表示是否允许读/写/执行。如果允许的话,这将是r,w或x。否则,它将为-。 注意的setuid,setgid的和粘滞位可每一组的第三个字符改变为s,S,t或T。这是一个简单的规则:如果字符是小写字母,则设置权限;否则,事实并非如此。 (有关权限的符号表示法的详细信息,请参阅此处。) 每个用户都有其用户ID,每个组都有其组ID。所有ID将为非负整数。一个用户将至少属于一个组。如果用户A想要访问文件,则系统将按以下方式检查其权限: 如果文件属于user A,请检查用户类的权限。 如果文件不属于A,但A属于文件所属的组,请检查组类的权限。 否则,请检查其他类的权限。 但是,有一个例外:如果用户ID为0(超级用户),则他们有权执行任何操作! 技术指标 您的程序/函数应该以任何合理的格式将它们作为输入: 以符号表示的权限。 文件所属的用户标识和组标识。 的用户ID A和A所属的组ID列表。 访问类型。您可以使用任何三个不同的一位数或一个字符的值进行读取,写入和执行。 如果A有权访问文件,则返回/输出一个真实值;否则,返回/输出一个虚假值。 您可以假定符号的第一个字符将始终为-(常规文件)。 这是代码高尔夫球,因此最短的字节为准! 测试用例 格式为[permissions, user ID of file, group ID of file, user ID of A, group IDs of A, type(r/w/x)]。 [-rwx------, 13, 15, 13, [15, 24], r]: …

6
这是令人满意的数字吗?
受此聊天对话启发 甲满足号码是一个号码,其十进制表示的形式为abx,具有以下属性: x是最长的尾随重复后缀,如果末尾没有重复,则为最后一位(123333-> 3333,545656-> 5656,123-> 3) b是x(123333-> 2,55545656-> 4)之前的一位数字 a是剩余的前缀(123333-> 1,55545656-> 555) a == c**b(**表示指数),其中c是x(1623333-> 4(3 3 3 3,不是33 33))的最小重复部分的重复次数 例如,8300是具有满足数a = 8,b = 3,c = 2,和x = 00。24651是不是一个满意的数字,因为x = 1,b = 5,a = 246,并且没有整数c是满足c^5 = 246。1222也不是令人满意的数字,因为使用x = 222和时b = 1,没有剩余数字a。 给定正整数n >= 100,输出是否n为令人满意的数字。 例子 8300: True (a=8, b=3, c=2, …

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.