Questions tagged «array-manipulation»

通过使用和操纵数组来解决特定问题的竞赛。

3
计算周期性自我描述列表
循环自我描述列表 如果满足以下条件,则正整数列表LLL周期性地自我描述。 LLL是非空的。 LLL的第一个和最后一个元素不同。 如果将LLL分为相等元素的游程,则每个游程的元素等于下一个游程的长度,最后一个游程的元素等于第一游程的长度。 例如,考虑L=[1,1,1,2,3,3,1,1,1,3]L=[1,1,1,2,3,3,1,1,1,3]L = [1,1,1,2,3,3,1,1,1,3]。它是非空的,并且第一个和最后一个元素是不同的。当我们掰成运行,我们得到[[1,1,1],[2],[3,3],[1,1,1],[3]][[1,1,1],[2],[3,3],[1,1,1],[3]][[1,1,1],[2],[3,3],[1,1,1],[3]]。 第一次运行为111 s,下一次运行[2][2][2]的长度为111。 第二次运行是一个运行222 s,并且下一个游程的长度,[3,3][3,3][3,3],是222。 第三次运行是一个运行333 s,并且下一个游程的长度,[1,1,1][1,1,1][1,1,1],是333。 第四轮为111 s,下一轮[3][3][3]的长度为111。 最后,最后一次运行的是一个运行333秒,所述第一游程的长度,[1,1,1][1,1,1][1,1,1],是333。 这意味着LLL是循环自描述列表。 对于非例如,列表[3,2,2,2,1,4,1,1,1][3,2,2,2,1,4,1,1,1][3,2,2,2,1,4,1,1,1]不是周期性自描述的,由于运行222 s的后面长度的运行111。列表[2,2,4,4,3,3,3,3][2,2,4,4,3,3,3,3][2,2,4,4,3,3,3,3]也没有周期性自描述的,自上次运行的是一个运行333 S,但在第一次运行具有长度222。 任务 在这种挑战,你的输入是一个整数n≥1n≥1n \geq 1。您的输出应为总和等于nnn的循环自描述列表的数量。例如,n=8n=8n = 8应导致444中,由于周期性自描述列表,其总和为888是[1,1,1,1,4][1,1,1,1,4][1,1,1,1,4],[1,1,2,1,1,2][1,1,2,1,1,2][1,1,2,1,1,2],[2,1,1,2,1,1][2,1,1,2,1,1][2,1,1,2,1,1]和[4,1,1,1,1][4,1,1,1,1][4,1,1,1,1]。最低字节数获胜,并且适用其他标准代码高尔夫球规则。 这是输入111到505050的正确输出值: 1 -> 0 2 -> 0 3 -> 0 4 -> 2 5 -> 0 6 -> 2 7 -> 0 8 …

10
重复此GCD操作
问题A3来自 2008年Putnam竞赛的说: 开始一个有限序列a1,a2,…,ana1,a2,…,aña_1, a_2, \dots, a_n正整数。如果可能的话,选择两个指数j&lt;kj&lt;kj < k使得一种Ĵ一种Ĵa_j不划分akaka_k,并更换ajaja_j和akaka_k通过gcd(aj,ak)gcd(aj,ak)\gcd(a_j, a_k)和LCM (aĴ,aķ)lcm(一种Ĵ,一种ķ)\text{lcm}(a_j, a_k), 分别。证明如果重复此过程,则它最终必须停止并且最终顺序不取决于所做的选择。 您在此挑战中的目标是将有限整数的正整数作为输入,并输出重复此过程直到无法进一步进行的结果。(也就是说,直到结果序列中的每个数字都除以其后的所有数字。)您无需解决Putnam问题。 这是代码高尔夫:每种编程语言中最短的解决方案胜出。 测试用例 [1, 2, 4, 8, 16, 32] =&gt; [1, 2, 4, 8, 16, 32] [120, 24, 6, 2, 1, 1] =&gt; [1, 1, 2, 6, 24, 120] [97, 41, 48, 12, 98, 68] =&gt; [1, 1, …

5
多方面的舞蹈
挑战 给定n整数维数组和第一个n自然数的排列,请相应地排列数组维。 细节 这一挑战是受MATLAB启发的permute。演示 排列以整数列表形式给出,例如,[1,3,2]表示1映射到1,将2映射到3,将3映射到2(此处,i第th个条目是i映射到的值)。但是您可以使用其他方便的格式,例如作为循环或函数。如果更方便,也可以使用基于0的索引。 可以假定该数组是完整的“矩形”数组m1 x m2 x ... x mn(即,您可以假定它不是锯齿状的)。 您可以假设该n值不太大,因为许多语言对嵌套数组中的维数都有限制。 如果您的语言不支持多维数组,则也可以将代表数组的字符串作为输入。 例子 任何n与身份置换维数组[1,2,3,...,n]将保持不变。 [[10,20,30],[40,50,60]]具有排列的数组[2,1]将映射到[[10,40],[20,50],[30,60]]。 [[[1,2],[3,4]],[[5,6],[7,8]]]具有排列的数组[2,3,1]将映射到[[[1,3],[5,7]],[[2,4],[6,8]]]。

19
使三角计划有效
三角性是Xcoder 先生开发的一种新的esolang ,其代码结构必须遵循非常特定的模式: 对于第nth行代码,其上必须完全2n-1有程序的字符。这将导致三角形/金字塔形,第一行仅包含一个字符,其余行以2为增量增加。 每行.的左侧和右侧都必须用s 填充,以使字符以其行为中心,并且所有行都应填充为相同的长度。如果l定义为程序中的行数,则程序中的每一行的长度必须为2 * l - 1 例如,左侧的程序有效,而右侧的程序无效: Valid | Invalid | ...A... | ABCDE ..BCD.. | FGH .EFGHI. | IJKLMN JKLMNOP | OPQRS 当布置在有效结构中时,该名称变得显而易见。 任务 您的任务是将单个行字符串作为代表Triangularity代码的输入,并将其输出转换为有效代码,如上所述。 I / O规格: 输入将仅包含范围内的字符 0x20 - 0x7e 输入的长度始终是一个平方数,因此可以很好地填充。 您必须将点用于输出填充,而不要使用其他东西。 您可以通过任何可接受的方法输入和输出。这是一个代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 input ---- output g ---- g PcSa ---- .P. …
19 code-golf  string  code-golf  combinatorics  code-golf  math  number  code-golf  matrix  code-golf  string  decision-problem  code-golf  internet  code-golf  number  number-theory  integer  expression-building  code-challenge  primes  cops-and-robbers  obfuscation  code-challenge  primes  cops-and-robbers  obfuscation  code-golf  string  balanced-string  code-golf  quine  code-generation  code-golf  matrix  code-golf  tips  c#  code-golf  ascii-art  code-golf  ascii-art  source-layout  code-golf  quine  source-layout  popularity-contest  language-design  code-golf  array-manipulation  subsequence  code-golf  matrix  math  code-challenge  game  graph-theory  atomic-code-golf  code-golf  number  integer  polynomials  equation  code-golf  array-manipulation  sorting 

25
重叠切片的按列求和
任务 给定的整数的列表大号和另一个整数小号中,目标是计算所有的列方向总和小号 -length(可能重叠的)的切片大号,而关于相对于它们的位置大号(见下文)。 定义 该小号 -length (重叠)切片列表的大号都的连续子序列(不包裹)大号是长度的小号。 为了使切片s相对于L 的位置相关,您可以想象构建一个“阶梯”,其中每个切片s i与i的位置都从开始偏移。 眼镜 s是一个大于1的整数,并且严格小于L的长度。 L将始终包含至少3个元素。 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下会禁止这些漏洞。这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 示例和测试用例 这是一个工作示例: [1, 2, 3, 4, 5, 6, 7, 8, 9], 3 [1, 2, 3] [2, 3, 4] [3, 4, 5] [4, 5, 6] [5, 6, 7] [6, 7, 8] [7, 8, 9] -------------------------------- (+) | …

6
类Kolakoski自参考序列
这是如何定义Kolakoski序列(OEIS A000002)的方法: 所述Kolakoski序列是包含序列1和2,并且n该序列的第i个元素是长度n个组相等的元素(运行)的序列本身中的。序列的前20个术语以及相应的长度为: 1 2 2 1 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 1 - --- --- - - --- - --- --- - --- --- - 1 2 2 1 1 2 1 2 2 1 2 2 1 本质上,科拉科斯基序列的相等元素的组的长度是科拉科斯基序列本身。 …

21
它会定期振荡吗?
挑战 给定一个列表,确定将列表分组为增加和减少元素的运行是否将导致大小相等的列表的列表。 换句话说,列表的“转折点”平均间隔开。 例 这是一个例子: 0, 3, 7, 5, 2, 3, 6 0, 3, 7增加,7, 5, 2减少和2, 3, 6增加。因此,这是事实。 另一个例子: 1, 4, 6, 8, 5, 3, 5, 7, 9 1, 4, 6, 8增加,8, 5, 3减少和3, 5, 7, 9增加。因此,这是虚假的。 规则和规格 没有相邻的元素将相等 可以假定所有数字都在您的语言的合理数字范围内 您可以假设所有数字都是整数,如果它可以帮助您打高尔夫 这是代码高尔夫球,因此最短的答案将获胜 以任何合理表示形式的列表形式输入,并以任何真实/虚假值输出。这两个值必须一致。 测试用例 Input -&gt; Output 1, 3, …

15
深度搜索列表
对于此挑战,当且仅当列表完全由整数和有效列表(递归定义\ o /)组成时,列表才被视为有效。对于此挑战,给定一个有效列表和一个整数,返回可以找到该整数的所有深度的列表。 例 让我们考虑list [1, [2, [3, [1, 2, 3], 4], 1], 1]和integer 1。然后,我们可以像这样绘制列表: Depth 0 1 2 3 Num 1 2 3 1 2 3 4 1 1 您会注意到,它1显示在深处0, 1, 3。因此,您的输出应采用0, 1, 3某种合理的格式(顺序无关紧要)。 深度可以是0或1的索引,但是请在提交的内容中指定是哪一个。 测试用例(0索引) 对于列表[1,[2,[3,4],5,[6,7],1],[[[[5,2],4,[5,2]]],6],3]: 1 -&gt; [0, 1] 2 -&gt; [1, 4] 3 -&gt; [0, 2] …

30
从数组中随机选择
这个挑战相当简单: 给您一个正整数(不包括0)整数数组,并且必须从该数组中选择一个随机元素。 但是这是一个变数: 选择元素的概率取决于整数的值,这意味着随着整数的变大,它被选中的概率也变大了! 例 给你数组[4, 1, 5]。 在这种情况下,选择4的概率等于4除以数组中所有元素的总和4 / ( 4 + 1 + 5 ) = 4 / 10 =40%。 选择1的概率为1 / 10或10%。 输入项 正整数数组。 输出量 如果使用方法,则返回所选的整数,或将其直接打印到stdout。 规则 这是代码高尔夫球,因此任何语言中以字节为单位的最短代码都胜出。 禁止出现标准漏洞。

30
充分利用两个阵列
您将获得两个浮点数数组。您的任务是将两个数组的相应元素配对,并获取每对的最大值。但是,如果两个对应的元素相等,则必须取它们的总和。 例如,给定列表[1, 3, 3.2, 2.3]和[3, 1, 3.2, 2.6],您必须执行以下操作: 一对元件(或zip): [[1, 3], [3, 1], [3.2, 3.2], [2.3, 2.6]]。 仔细检查每一对并应用上述过程:[3, 3, 6.4, 2.6]。 眼镜 数组/列表将始终具有相等的长度。但是,它们可能是空的。 只要您不滥用这些数字,它们所包含的数字将始终适合您的语言能力。它们可能是正数,零或负数,您必须处理所有类型。 如果它有助于减少字节数,则也可以将列表的长度作为输入。 规则 这是代码高尔夫球,因此最短答案以字节为单位。 标准输入和输出规则适用。您可以采用任何合理的格式输入(和输出)。 默认漏洞是禁止的。 测试用例 Array_1,Array_2-&gt;输出 [],[]-&gt; [] [1、2、3],[1、3、2]-&gt; [2、3、3] [1、3、3.2、2.3],[3、1、3.2、2.6]-&gt; [3、3、6.4、2.6] [1,2,3,4,5,5,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]-&gt; [10,9, 8、7、6、10、7、8、9、10] [-3.2,-3.2,-2.4,7,-10.1],[100,-3.2,2.4,-7,-10.1]-&gt; [100,-6.4,2.4,7,-20.2]

19
提取局部最大值
给定一个正整数数组,输出一个大于或等于相邻元素的所有元素的数组。大多数元素将具有两个相邻的元素。第一个和最后一个元素是特殊情况,因为它们只有一个相邻元素。 您可以假定该数组至少包含两个元素。 测试用例: Input | Output [4,2,6,12,4,5,4,3] | [4,12,5] [1,2] | [2] [1,2,3,2,1] | [3] [3,2,1,2,3] | [3,3] [4,4] | [4,4] [2,4,4,4,1] | [4,4,4] [2,3,3,4] | [3,4] [4,3,3,4] | [4,4] 这是代码高尔夫球,最短的代码获胜!

15
逆转魔方算法
每当您在魔方魔方上移动时,都会有一个反向移动,它会撤消第一个移动。因此,每个算法(一组动作)都有一个反向算法,该算法会取消第一个算法。 这项挑战的目标是找到给定算法的反面。 规格: 输入包含单个动作的数组。每一步都是一个长度为1或2的字符串。当然,您可以使用最适合您的语言的任何输入格式。每个动作都由结构X或X'或组成X2,其中X是大写或小写字母。 要反转X,只需将其替换为X'。同样,X'变为X。X2另一方面不会改变。 若要创建输出,请反转每个动作,然后反转数组。 示例(用空格分隔的字符串): R =&gt; R' D U' =&gt; U D' S T A C K =&gt; K' C' A' T' S' A2 B2 =&gt; B2 A2 得分: 这是代码高尔夫球,因此赢得的字节数最少。不允许出现标准漏洞。

30
减少错误
任务 给定一个非空数组0和1,将的游程长度减半0。 输入项 的阵列0和1。可接受的格式: 使用您的语言的真实数组 换行分隔的字符串0和1 连续的字符串0和1 任何其他合理的格式 例如,以下三个输入均可接受: [1, 0, 0, 1] "1\n0\n0\n1"(哪里\n有换行U + 000A) "1001" 您可以假设的游程长度0是偶数。 输出量 的阵列0和1,在上述可接受的格式。 测试用例 input ↦ output [1,0,0,1,0,0,1] ↦ [1,0,1,0,1] [1,1,0,0,1,1,0,0,1] ↦ [1,1,0,1,1,0,1] [1,1,0,0,1,1,1,0,0,1,1] ↦ [1,1,0,1,1,1,0,1,1] [1,1,1] ↦ [1,1,1] [0,0,1] ↦ [0,1] [0,0] ↦ [0] [1,1,1,0,0,0,0,1,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,1,0,0,1,0,0] ↦ [1,1,1,0,0,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,0] 计分 这是代码高尔夫球。以字节为单位的最短答案将获胜。 有标准漏洞。

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 …
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

30
反转布尔数组
一个不错的简单的 输入项 给定一个布尔数组(或可接受的替代方法),您可以假定该数组的长度永远不会超过32个元素。 [false, false, true, false, false] 输出量 反转数组的每个元素并将其输出。 [true, true, false, true, true] 规则 您可以编写完整的程序或仅编写函数 适用标准漏洞 每种语言以字节为单位的最短代码胜出! 测试用例 Input: [true, false] Output: [false, true] Input: //Example of acceptable alternative [0,1,1] Output: [1,0,0]

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.