Questions tagged «array-manipulation»

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

2
解释基普尔!
介绍 Kipple是Rune Berg于2003年3月发明的基于堆栈的深奥编程语言。 Kipple有27个堆栈,4个运算符和一个控制结构。 堆栈 堆栈被命名为a- z并包含32位带符号整数。还有一个特殊的堆栈,@使输出数字更加方便。当将数字压入时@,实际上将压入该数字的ASCII值。(例如,如果您将12推到@,它将推49,然后推50。@) i在执行程序之前,将输入压入输入堆栈。解释器将i在执行之前要求存储值。执行完成后,输出堆栈上的所有内容o都会弹出以ASCII字符形式输出。由于这是Kipple唯一的IO机制,因此无法与Kipple程序进行交互。 经营者 操作数可以是堆栈标识符或带符号的32位整数。 推送:>或< 语法:Operand>StackIndentifier或StackIndentifier<Operand Push运算符将操作数向左移并将其推入指定的堆栈。例如,12>a将值12推入stack a。a>b将从堆栈中弹出最高值a并将其推入堆栈b。弹出空堆栈总是返回0 a<b相当于b>a。a<b>c从弹出最高值,b并同时推入c和a。 加: + 句法: StackIndentifier+Operand Add运算符将堆栈上最顶层项目和操作数之和压入堆栈。如果操作数是堆栈,则从中弹出值。例如,如果堆栈的最高值为a1,a+2则将3压入堆栈。如果a为空,a+2则将2推入。如果堆叠的最值a和b是1和2,然后a+b将从栈中弹出的值2 b和3推入堆栈a。 减去: - 句法: StackIndentifier-Operand 减法运算符的工作方式与加法运算符完全相同,只是它减去而不是加法。 明确: ? 句法: StackIndentifier? 如果最上面的项目为0,则Clear运算符将清空堆栈。 解释器将忽略操作符旁边不存在的所有内容,因此以下程序将起作用:a+2 this will be ignored c<i。但是,添加注释的正确方法是使用#字符。#执行前,a 和行尾字符之间的所有内容都将被删除。ASCII字符#10在Kipple中定义为行尾。 操作数可以由两个运算符共享,例如a>b c>b c?可以写为a>b<c?。 该程序1>a<2 a+a将导致a包含值[1 4](从下到上),而不是[1 3]。对于-操作员也是如此。 控制结构 Kipple中只有一种控制结构:循环。 句法: (StackIndentifier code …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

8
自动数组
每个人都喜欢嵌套列表!但是,有时很难创建嵌套列表。您必须决定是否要将其嵌套得更深,或者是否需要将其嵌套得更浅。因此,对于您的挑战,您必须“自动”列表。要自动列出列表,请比较列表中的每对项目。 如果第二个元素较小,则通过在两个元素之间插入闭合和打开括号来分隔这两个元素,如下所示: } { {2 , 1} 例如,{2, 1}变为{2}, {1},并且{3, 2, 1}变为{3}, {2}, {1} 如果第二项相同,则保持不变。例如,{1, 1, 1}保持不变,{2, 1, 1, 1}将变为{2}, {1, 1, 1}。 如果第二个项目较大,则将每个后续项目嵌套更深一层。例如,{1, 2}将成为{1, {2}}并且{1, 2, 3}将成为{1, {2, {3}}} 挑战 您必须编写一个接受数字列表的程序或函数,并在自动嵌套后返回相同的列表。以您的语言本机列表格式(或最接近的替代格式)或字符串形式输入此输入。您不必像我在示例中那样使用花括号。您可以使用语言中最自然的括号类型,只要这是一致的即可。您可以放心地假设列表将仅包含整数。您也可以假设列表中至少包含2个数字。这是一些示例IO: {1, 3, 2} --> {1, {3}, {2}} {1, 2, 3, 4, 5, 6} --> {1, {2, {3, {4, …

9
N选择列表
给定一个integers列表L和一个integer N,输出L分成N相等长度的子列表。 不可分割的长度 如果N不除的长度L,则不可能所有子列表都具有相等的长度。 无论如何,输出的最后一个子列表是调整其长度以包含列表其余部分的子列表。 这意味着L除最后一个列表外的所有子列表都应为length length(L) // N,其中//为楼底分隔(例如3//2 = 1)。 一些规则 L 可以为空。 N >= 1。 您可以使用任何所需的内置函数。 您可以通过接受输入STDIN,作为函数参数,或类似的东西。 您可以将输出打印到STDOUT,从函数返回它或类似的东西。 您可以为列表和整数选择任何格式,只要它是您语言中最自然的列表和整数表示形式即可。 测试用例 Input: [1,2,3,4], 2 Output: [[1,2],[3,4]] Input: [-1,-2,3,4,-5], 2 Output: [[-1,-2],[3,4,-5]] Input: [1,2,3,4], 1 Output: [[1,2,3,4]] Input: [4,8,15,16,23,42], 5 Output: [[4],[8],[15],[16],[23,42]] Input: [4,8,15,16,23,42], 7 Output: [[],[],[],[],[],[],[4,8,15,16,23,42]] Input: [2,3,5,7,11,13,17,19,23], 3 …

4
帮助重新计算您的代表!
几个月前,我们在meta上进行了讨论,讨论如何提高因问题投票而获得的声誉。这是我们目前的投票信誉系统的基础:1 问题投票U值得5个声望。 回答投票u值得10个声誉。 问题或答案不满意d的人值得-2声望。 对于新系统,已经有许多不同的建议,但是当前最受欢迎的与上面的相同,但是问题投票的比例扩大到+10个代表。这项挑战是要计算出安装该系统后您将获得多少代表。 让我们来看一个例子。如果投票活动为UUUUuuuuUUUUUduuudUU,则在当前系统下,您的收入为121: U x 4 x 5 = 20 = 20 u x 4 x 10 = 40 = 60 U x 5 x 5 = 25 = 85 d x 1 x -2 = -2 = 83 u x 3 x 10 = 30 = …

12
玩消除游戏
介绍 在这个挑战中,您的任务是模拟某种消除游戏。在游戏中,参与者围成一个圆圈,每个人都拿着一个整数。在游戏的每一轮中,每个参与者都指向该人n走开(如果n他们持有的人数)。如果n为正,则在其右边进行计数;如果n为负,则在其左侧进行计数;如果n为零,则它们指向自己。每个有人指着他们的参与者都将被淘汰,并离开圈子。这结束了回合。巡回赛一直持续到没有参与者离开为止。 输入值 您的输入是非空整数列表,采用任何合理格式。它代表游戏参与者持有的数字。 输出量 您的输出是直到游戏结束为止的回合数。 例 考虑输入列表[3,1,-2,0,8]。在第一轮中,发生以下情况: 持有人3指向持有人0。 持有人1指向持有人-2。 持有人-2指向持有人3。 持有人0指着自己。 持有人8指向持有人的权利-2(列表代表一个圆圈,因此在末尾环绕)。 ,这意味着0,-2和3被淘汰,所以第二轮与清单进行[1,8]。在这里,1指向8,然后8指向自己,因此8被消除。第三轮与清单进行[1],在那里1只需要点在自理和消除。经过三轮淘汰所有参与者,所以正确的输出是3。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 [3] -> 1 [0,0,0] -> 1 [-2,-1,0,1,2,3,4,5,6,7] -> 2 [5,5,5,6,6,6] -> 2 [3,-7,-13,18,-10,8] -> 2 [-7,5,1,-5,-13,-10,9] -> 2 [4,20,19,16,8,-9,-14,-2,17,7,2,-2,10,0,18,-5,-5,20] -> 3 [11,2,7,-6,-15,-8,15,-12,-2,-8,-17,6,-6,-5,0,-20,-2,11,1] -> 4 [2,-12,-11,7,-16,9,15,-10,7,3,-17,18,6,6,13,0,18,10,-7,-1] -> 3 [18,-18,-16,-2,-19,1,-9,-18,2,1,6,-15,12,3,-10,8,-3,7,-4,-11,5,-15,17,17,-20,11,-13,9,15] -> 6

14
无复杂性的Kolmogorov(-Smirnov)
在统计中,有时了解两个数据样本是否来自相同的基础分布很有用。一种实现方法是使用两个样本的Kolmogorov-Smirnov检验。 您的任务是编写一个程序,该程序读取两个未排序的非负整数数组,并计算测试中使用的主要统计量。 给定一个数组A和一个实数x,定义分布函数F为 F(A,x) = (#number of elements in A less than or equal to x)/(#number of elements in A) 给定两个数组A1和A2,定义 D(x) = |F(A1, x) - F(A2, x)| 两次抽样的Kolmogorov-Smirnov统计量是D全部real 的最大值x。 例 A1 = [1, 2, 1, 4, 3, 6] A2 = [3, 4, 5, 4] 然后: D(1) = |2/6 - …

30
块+枚举数字列表
我有一个十进制数字列表: 4, 4, 4, 7, 7, 9, 9, 9, 9, 2, 2, 2, 4, 4 十进制数字列表称为项目。通过将相同和相邻的数字分组在一起,我们可以从这些项目中形成“块”。我想为每个块分配一个唯一的数字,从1开始,并按块在原始列表中出现的顺序增加1。因此,给定示例的输出如下所示: 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5 输入格式 数字列表。(0-9)您可以根据需要使用内置的语言阅读此列表。编码:ASCII 输出格式 一系列十进制数字,由定界符分隔。您的程序必须始终使用相同的定界符。定界符必须大于0位。编码:ASCII 有标准漏洞。

6
按独创性分组整数
介绍: 我收集曲折的难题。大多数曲折的拼图游戏都是由中国公司生产和销售的。大多数知名公司都要求拼图游戏设计师许可,以制作他们的设计并共同开发市场上的产品。在这种情况下,拼图设计师当然为他们的拼图之一上市而感到非常高兴和自豪。 但是,也有一些中国公司制造难题。这些仿冒品是未经原始创作者许可使用的设计,或者是已经存在的拼图的价格便宜的低价副本。 挑战: 我们将确定以特定顺序(从左到右†)“释放”的数字的独创性。 给定整数列表,请按其原始性进行分组和输出。 如何确定数字的独创性? 一个数字是否与先前的数字完全相同?组(最不原始),在所有其他组之后是X + 1组。X+1X+1X+1X+1X+1X+1 一个数字是不是一个较早数字的重复,而是一个负数(即原始数字是,但是现在是;反之亦然)?组。nnn−n−n-nXXX 数字的绝对值可以通过连接一个或多个更早的绝对数来形成,并且它不属于前面提到的组或吗?组X - ñ,其中Ñ是不同数字的在级联(和所使用的量Ñ ≥ 1)。X+1X+1X+1XXXX−NX−NX-NNNNN≥1N≥1N\geq1 这个数字不适合上述任何一组吗?到目前为止,它是完全唯一的吗?第111组(最原始的组),在所有其他组之前领先。 这听起来似乎很模糊,所以这里有一个分步示例: 输入清单: [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44] 34是第一个数字,始终是原始数字,在组111。到目前为止的输出:[[34]] 9 也是原来的: [[34,9]] 4 也是原来的: [[34,9,4]] -34是早期数字的负数34,因此它在XXX组中:[[34,9,4],[-34]] 19 是原始的: [[34,9,4,19],[-34]] -199可以由两个较早的数字19和组成9,所以在X−2X−2X-2组中:[[34,9,4,19],[-199],[-34]] 34是较早数的精确副本,因此它在组X+1X+1X+1:[[34,9,4,19],[-199],[-34],[34]] -213 是原始的: [[34,9,4,19,-213],[-199],[-34],[34]] 94可以由两个较早的数字9和组成4,所以在X− 2X-2X-2组中:[[34,9,4,19,-213],[-199,94],[-34],[34]] 1934499可以由四个较早的数字形成19,34,4,和两次9,因此它在组X− 4X-4X-4:[[34,9,4,19,-213],[19499],[-199,94],[-34],[34]] 213是早期数字的负数-213,因此它在XXX组中:[[34,9,4,19,-213],[1934499],[-199,94],[-34,213],[34]] 3 是原始的: [[34,9,4,19,-213,3],[1934499],[-199,94],[-34,213],[34]] 21 是原始的: [[34,9,4,19,-213,3,21],[1934499],[-199,94],[-34,213],[34]] -2134可以由两个较早的数字213和4(或三个较早的数字21,3和和组成)4,但是我们总是使用最少数量的串联数字来确定创意),因此它在X− 2X-2X-2组中:[[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134],[-34,213],[34]] 44449可以由两个较早的数字四次形成4和9,所以它在组X− …

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是not (a and b)) forall (通用量词) v0,v1,v2等。(变量) 这是一个句子的示例: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) 这not x是简写x nand x-实际的句子会用到(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

5
最小对称
局部相关。 目标:给定一个正整数的矩阵,输出包含的最小中心对称矩阵(该矩阵也可能包含非正整数)。M中号MM中号MM 中心对称矩阵是具有2阶旋转对称性的正方形矩阵,即,将其旋转两次后仍保持相同的矩阵。例如,中心对称矩阵的左上角元素与右下角元素相同,中心上方的元素与中心下方的元素相同。在这里可以找到有用的可视化。 更正式地说,给定的矩阵,产生一个方阵使得是中心对称的和,并且不存在其他方阵使得。Ñ Ñ 中号⊆ Ñ ķ 暗淡ķ &lt; 暗淡Ñ中号MMñNNñNN中号⊆ ñM⊆NM\subseteq NķKK暗淡ķ&lt; 昏暗ñdim⁡K&lt;dim⁡N\dim K<\dim N 乙甲⊆ 乙甲我,Ĵ乙我+ 我',Ĵ + Ĵ “(我',Ĵ ')一种AA当且仅当每个值出现在索引,是的子集(符号:)。。乙BB一个⊆ 乙A⊆BA\subseteq B一种我,ĴAi,jA_{i,j}Bi+i′,j+j′Bi+i′,j+j′B_{i+i^\prime,j+j^\prime}(i′,j′)(i′,j′)(i^\prime, j^\prime) 注意:某些矩阵具有多个解(例如[[3,3],[1,2]],以[[2,1,0],[3,3,3],[0,1,2]]或求解[[3,3,3],[1,2,1],[3,3,3]]);您必须输出至少一种有效解决方案。 测试用例 input example output [[1, 2, 3], [4, 5, 6]] [[1, 2, 3, 0], [4, 5, 6, 0], [0, 6, 5, 4], [0, …

13
第一最后最后最后
挑战 任务很简单。给定一个数组以及第一个和最后一个值:在第一个之后返回最后一个的第一个,在最后一个之前返回第一个的最后一个。 或简单地说:给定数组var1,var2。 示例数组: [var2,,var1,,var2,,var2,var1,var2,] 返回: 数组中出现的第一个var1右侧的第一个var2的索引。 [var2,,第一个var1,第一个var2,第二个var2,var1,第三个var2,] 数组中显示的最后一个var2左侧的第一个var1的索引。 [var2,,second var1,,var2,,var2,first var1,last var2,] 输入值 两个不同的正整数 正整数数组 输出量 答案索引,按顺序 规则 数组将包含每个变量中的至少一个(最小大小为2) 假设输入工作 示例:0, 1 [1, 0]或类似的将失败 IO很灵活 例子 Input First = 2; Last = 4; [0, 2, 4, 2, 3, 1, 4, 0, 1, 2, 4, 9] Output 2, 9 Input …

12
复制矩阵的总和
给定数字列表[ a 1 a 2 ... a n ],计算所有矩阵A the的总和,其中Aᵢ定义如下(m是所有aᵢ的最大值): 1 2 ⋯ (i-1) i (i+1) ⋯ n +---------------------------- 1 | 0 0 ⋯ 0 aᵢ aᵢ ⋯ aᵢ 2 | 0 0 ⋯ 0 aᵢ aᵢ ⋯ aᵢ . . . . . . . . . . . …

2
找出我的邻居
输入由包含邻居信息的i行组成。每个我个行包含4个值,代表的邻居我到北,东,南与西方向,分别。因此,每个值代表在给定方向的邻居我个行,从第1行开始,并且可以达到65,535行。的0值表示没有邻居到该方向。 例如,如果第一行是“ 0 2 3 10”,则表示第i个邻居还有其他三个邻居:北方没有邻居,东方没有邻居2,南方没有邻居3,西方没有邻居10。 您需要从最接近西北的值开始输出邻居数组。每个邻居在相对于其他邻居的位置仅显示一次。让我们看一些例子: 输入: 0 0 0 0 无邻居(空情况),输出: 1 输入: 0 2 0 0 0 0 0 1 1在东边有邻居2。2在西边有邻居1 输出: 1 2 输入: 0 2 0 0 0 0 3 1 2 0 0 0 1在东边有邻居2。2在西边有邻居1,在南边有邻居3。3在北部有邻居2 输出: 1 2 3 输入: 2 0 0 0 …

7
计算周期数组
的period一个字符串的是最短的非零移位,使得字符串匹配本身,忽略任何份该突出端。因此,例如,abcabcab具有period 3。按照惯例,如果没有这种移位,则字符串的周期等于其长度。因此,时期abcde为5和时期a为1。 用更正式的术语来说,字符串的周期S是最小的,i &gt; 0因此S[1,n-i] == S[i+1,n](从索引1)。 对于给定的具有两个长度的幂的字符串S,我们将计算其所有具有两个长度的幂的前缀的周期。例如,考虑S = abcabcab。我们将计算的周期为: 'a', 1 'ab', 2 'abca', 3 'abcabcab', 3 实际上,我们将仅输出周期数组,即[1, 2, 3, 3]。 对于给定的2的正幂n,请考虑所有可能的二进制字符串S。回想一下,二进制字符串只是1s和0s 的字符串,因此恰好有2^n这样的字符串(即2幂n)。对于每个,我们都可以计算这一周期数组。 挑战在于编写以n(2的幂)为输入的代码,并计算有多少个此类数组。 的答案n = 1, 2, 4, 8, 16, 32, 64, 128是: 1, 2, 6, 32, 320, 6025, 216854, 15128807 的不同周期数组的完整集合n = 4是: 1, 1, 1 1, …

27
数组元素之间的所有非有序对
任务: 返回具有数组元素之间所有可能对的数组。 例 从a=["a", "b", "c", "d"];归b=[["a","b"],["a","c"],["a","d"],["b","c"],["b","d"],["c","d"]]。 对可以是任意顺序,只要包括所有可能的组合,并且显然["b","d"]与相同即可["d","b"]。 输入值 由类中的char组成的唯一字符串元素数组[a-z]。 输出量 包含所有可能的输入数组元素对的2d数组。 测试用例 input=["a","b","c"]; //output=[["a","b"],["a","c"],["b","c"]] input=["a","b","c","d","e"]; //output=[["a","b"],["a","c"],["a","d"],["a","e"],["b","c"],["b","d"],["b","e"],["c","d"],["c","e"],["d","e"]] 注:我找不到一个重复这一挑战。如果有一个,请在评论中提醒我删除问题。

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.