Questions tagged «array-manipulation»

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

2
盾墙
历史背景 盾墙是一种战术战争编队,其历史可以追溯到至少公元前2500年。它由战士与同伴的盾牌重叠构成“墙”组成。这种战术的吸引力来自这样一个事实,即即使是最不熟练的战士,只要拥有盾牌和武器,他们都可以在墙上战斗。由于墙的接近,几乎没有移动的空间,战斗通常变成用锋利的武器进行的激烈比赛。 挑战 您的任务是创建一个程序或函数,以两个战士的数组/列表/向量为输入,来决定战斗的结果。列表将代表单线的屏蔽墙,并且将遵循特定的符号: 维京人: 北欧勇士们发动了激烈的战斗。在8世纪后期到11世纪中叶,丹麦维京人入侵了不列颠王国,寻找财富和可耕地。出于挑战的目的,这些是维京人的战士: 该JARL:通常发现从壁的中心率众,jarls是海盗成群的领导人。受到15点伤害而死亡,每回合造成2点伤害。 该Berserker:虽然幻想,极大地扭曲了狂战士的形象,这些战士被称为精神恍惚般狂暴战斗没有任何一种比他们的盾等保护的。造成6点伤害死亡,每回合造成3点伤害。 该Chieftain:酋长是富人谁在他们的服务了自由人。他们通常会在战斗中赢得巨大的荣耀和财富。造成10点伤害死亡,每回合造成2点伤害。 Free Men:担任酋长的战士。他们发誓要为自己的主人而战直到死亡。遭受8点伤害,每回合造成1点伤害。 该Skald:Skalds,通常译为吟游诗人,是谁雇用了写诗,关于北欧勇士的事迹故事或歌曲的自由人。受到8点伤害死亡,并为每位相邻的战士造成1点额外伤害。骨不会造成伤害。以此方式,战士不能获得超过1点的额外伤害。 撒克逊人: 撒克逊人是在公元5世纪罗马帝国灭亡后从欧洲大陆来到英国定居的。出于此挑战的目的,有撒克逊人的战士: 该EARL:Ealdormen,通常被称为伯爵,是较高的贵族成员。他们通常占有很大的土地,并且有成百上千的宣誓就职者。遭受20点伤害,每回合造成1点伤害。 该K夜:由于缺乏一个更好的词中,骑士是谁拥有一些土地未成年贵族。在大多数情况下,骑士是伯爵的宣誓仆人。造成10点伤害死亡,每回合造成2点伤害。 该Warrior:常见的男人,通常是轻微的贵族没有土地或农民谁担任一个骑士。当与骑士或伯爵相邻时,战士获得+1伤害加成。受到8点伤害,每回合造成2点伤害。 在F长江三角洲地区:该Fyrd是民兵般的自由人,通常是贫困农民,谁愿意带任何武器(或武器状农具)他们在墙上打组。遭受5点伤害,每回合造成1点伤害。 最P古老:祭司在撒克逊人早期的文化中被高度重视,是上帝圣言的先驱。牧师死亡时受到15点伤害,并防止相邻的战士遭受1点伤害。牧师不会造成伤害。牧师对战士的伤害不能超过1。 墙 墙壁在其中心彼此相遇。每个回合中,每个战士都会直接对其前方的战士造成伤害,或者,如果前面没有活着的战士,则对角相邻的活着的战士会留下最少的生命值。如果有领带,请选择靠近墙壁边缘的战士。 例: Vikings [M,M,M,B,B,C,J,C,B,B,M,M,M] [F,F,F,W,W,K,E,K,W,W,F,F,F] Saxons To make matters easier, let's convert these walls into numbers: Round 0: M M M B B C J C B B M M …

30
我是高尔夫球爱好者吗?
定义和规则 甲golfy阵列是一个整数数组,其中每个元素是高于或等于所有先前元素的算术平均值。您的任务是确定作为输入给定的正整数数组是否适合。 您无需处理空白列表。 默认存在漏洞。 适用标准输入和输出方法。 您可以选择任何两个不同的非空值。它们必须是一致的,并且必须遵守所有其他决策问题规则。这是代码高尔夫球,每种语言中最短的代码胜出! 测试案例与范例 例如以下数组: [1, 4, 3, 8, 6] 是一个高尔夫球状数组,因为每个项都高于其前面的算术平均值。让我们逐步解决: 数字->前置元素->平均->是否遵循规则? 1-> []-> 0.0-> 1≥0.0(真) 4-> [1]-> 1.0-> 4≥1.0(真) 3-> [1,4]-> 2.5-> 3≥2.5(真) 8-> [1,4,3]-> 2.(6)-> 8≥2.(6)(真) 6-> [1,4,3,8]-> 4.0-> 6≥4.0(真) 所有元素都符合条件,因此这是一个高尔夫球阵列。请注意,就本挑战而言,我们将假定一个空列表([])的平均值为0。 更多测试用例: 输入->输出 [3]->正确 [2,12]->是 [1,4,3,8,6]->是 [1、2、3、4、5]->是 [6,6,6,6,6]->是 [3,2]->错误 [4、5、6、4]->错误 [4,2,1,5,7]->错误 [45,45,46,43]->错误 [32,9,15,19,10]->错误 请注意,这是拼图1从CodeGolf-黑客马拉松,也张贴在无政府状态高尔夫(即一个被打破) - …

18
逆向数学循环
灵感来自这 在链接的挑战中,要求我们对输入数组的原始元素和反向元素应用加法。在这一挑战中,我们将通过引入其他基本的数学运算来使其稍微困难一些。 给定整数数组,请循环遍历+, *, -, //, %, ^,其中//是整数除法并^是指数,同时将其应用于数组的倒数。或者,换句话说,将上述函数之一应用于数组的每个元素,第二个自变量是数组的反函数,并且应用的函数会循环遍历上面的列表。这可能仍然令人困惑,因此让我们来看一个例子。 Input: [1, 2, 3, 4, 5, 6, 7, 8, 9] Reverse: [9, 8, 7, 6, 5, 4, 3, 2, 1] [ 1, 2, 3, 4, 5, 6, 7, 8, 9] Operand: + * - / % ^ + * - [ 9, …

28
范围内的矩阵
挑战 给定一个整数n>0输出,n+1 X n+1矩阵包含所有从1to的整数,2n如下面的测试用例所示 测试用例 n=1 1 2 2 2 n=2 1 2 4 2 3 4 4 4 4 n=5 1 2 3 4 5 10 2 3 4 5 6 10 3 4 5 6 7 10 4 5 6 7 8 10 5 6 7 8 9 …

11
压缩稀疏矩阵
使用压缩的稀疏行(CSR,CRS或Yale格式)压缩稀疏矩阵。 这些都是相同的压缩形式(忽略新耶鲁)。 输入可以是任何二维数据结构(列表列表等):例如 [[0 0 0 0], [5 8 0 0], [0 0 3 0], [0 6 0 0]] 和输出应该有三个1D的数据结构(列表等),即表示输出A,IA和JA,例如 [5, 8, 3, 6] [0, 0, 2, 3, 4] [0, 1, 2, 1,] 维基百科描述了该过程: 数组A的长度为NNZ,并按从左到右的顺序从上到下(“行优先”)保存M的所有非零条目。 数组IA的长度为m +1。它由以下递归定义定义: IA [0] = 0 IA [i] = IA [i-1] +(原始矩阵第(i-1)行中非零元素的数量) 因此,IA的前m个元素将索引存储在M的每一行中的第一个非零元素的A中,而最后一个元素IA [m]存储NNZ,即A中的元素数,也可以认为是幻像行的第一个元素的A中的索引刚好在矩阵M的末尾。从元素A [IA …

30
比较我列表的平均值
获取列表的平均值(例如[2,6,7]) 获取列表的长度: [2,6,7] -> 3 汇总列表中的数字:2 + 6 + 7 = 15。 将总和除以他们的计数:15 / 3 = 5。 您应该比较两个正整数N和M列表的平均值,如果N的平均值较高,则返回一个值;如果M的平均值较高,则返回另一个值;如果出现平局,则返回另一个值。 I / O规则 允许所有标准的输入和输出方法。 输入值 您可以将输入作为两个单独的列表,一个嵌套列表或您认为适合该任务的任何其他内容。请指定格式。 输出量 提供的值必须是唯一的,并且必须至少包含一个非空白字符。此外,它们在运行之间必须保持一致(N的单个值,M的单个值,Tie的单个值)。请在您的答案中注明。值可以是非空字符串,布尔值,整数或任何您认为合适的值。 眼镜 列表的长度不一定相等。 您可以确保列表为非空。 测试用例 我选择了和值N wins,这是不言而喻的。M winsTie N,M->输出(平均值) [7],[6]-> N胜(N有7,M有6) [4,5],[4,4]-> N胜(N为4.5,M为4) [2,3,4],[4,5,6]-> M胜(N有3,M有5) [4,1,3],[7,3,2,1,1,2]->并列(均为2.666 ...) [100,390,1],[89,82,89]-> N胜(N有163.666 ...,M有86.666 ...) [92,892],[892,92]->领带(列表基本相同) [10,182],[12,78,203,91]->并列(均为96) 默认漏洞适用。鼓励解释!这是代码高尔夫球,因此以字节为单位的最短代码胜出!

28
计算逆模量
任务: 输出for的值x,其中a mod x = b有两个给定值a,b。 假设条件 a并且b将始终为正整数 永远不会有解决方案 x 如果存在多个解决方案,请至少输出其中之一。 如果没有任何解决方案,则不输出任何内容或表明不存在任何解决方案。 允许内置(不像其他数学方法那样有趣) 输出始终是整数 例子 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

21
最长相等子序列
定义 子序列可能不是连续的,例如[1, 1, 1]是的子序列[1, 2, 1, 2, 1]。 相等的子序列是每个元素都相等的子序列。 最长等于序列可能不是唯一的,例如,[1, 1]和[2, 2]是两个最长等于子序列[2, 1, 1, 2]。 输入值 一个非整数的正整数列表,格式如下: 作为您语言中正整数数组的本地实现 作为以换行符分隔的整数的字符串(十进制) 作为一串以换行符分隔的整数(一元) 任何其他合理的格式 输出量 以下列格式之一按任何顺序排列的所有最长相等子序列: 作为您语言中的2D嵌套数组(如果输入是数组) 作为带有相等元素的连续数组 任何其他合理格式 计分 尽管我们在寻找长的东西,但是使用的代码就字节数而言应尽可能短,因为这是代码高尔夫 测试用例 输入: [1, 2, 3] [1, 2, 2, 1] [1, 2, 3, 2, 1] [1, 2, 1, 2, 3, 4, 1] 输出: …

9
生成Rummy序列
您的任务是获取Rummy序列的输入n和输出元素n,该序列是我制作的(在OEIS上查找不会帮助您)。 定义 Rummy序列的每个元素都是一组真或假值。例如:[true, false]。 生成Rummy序列的成员的步骤非常简单: 从第一个索引开始[](这是元素0)。 将最左边的falsey设置为true。如果没有要更改的错误,则将列表的长度增加1并将新列表的所有成员设置为错误。 重复步骤2直到到达element n。 例 让我们将函数定义为rummy(int n)({}插入是为得到答案所采取的步骤): >>> rummy(5) {[]} {[false]} {[true]} {[false, false]} {[true, false]} [true, true] 规则 有标准漏洞。 必须通过您的语言的数字上限来输入0。 您可以以您认为合适的任何方式输出,只要清楚地知道输出是一组true / falseys。 琐事 我将其称为“ Rummy序列”是因为从索引2开始,它定义了在每一轮Progressive Rummy中需要放置的集合,其中falsey是一本书,而Truth是运行。 测试用例 >>> rummy(0) [] >>> rummy(1) [false] >>> rummy(6) [false, false, false] >>> rummy(20) [true, true, true, …

27
数数,替换,重复!
定义 如下定义CURR序列的第n 个数组。 从单例数组A = [n]开始。 对于A中的每个整数k,用k个自然数替换条目k,从1到k递增。 重复上一步骤n-1次。 例如,如果n = 3,我们从数组[3]开始。 我们替换3用1,2,3,得到[1,2,3] 。 我们现在更换1,2,和3带1 ; 1,2和1,2,3(resp。),产生[ 1,1,2,1,1,2,3 ]。 最后,我们对数组中的所有六个整数执行与上一步相同的替换,得到[ 1,1,1,2,1,1,1,2,1,2,3 ]。这是第三个CURR阵列。 任务 编写一个函数程序,给定严格的正整数n作为输入,该程序将计算第n 个 CURR数组。 输出必须是某种类型的平面列表(以及从函数返回的数组,您语言的数组语法的字符串表示形式,以空格分隔的等)。 这是代码高尔夫球。可能以字节为单位的最短代码获胜! 测试用例 1 -> [1] 2 -> [1, 1, 2] 3 -> [1, 1, 1, 2, 1, 1, 2, 1, 2, 3] 4 -> …

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

3
重构字形矩阵
作为其压缩算法的一部分,JPEG标准沿着交替方向的对角线将矩阵展开为向量: 您的任务是将展开的矢量与矩阵维一起取并重建相应的矩阵。举个例子: [1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3], 4, 3 应该屈服 [1 2 3 4 5 6 7 8 9 1 2 3] 而尺寸6, 2会给 [1 2 6 3 1 2 5 9 4 7 8 3] 规则 您可以选择仅将一个尺寸作为输入。各个输入可以任何顺序进行。您可以假定宽度和高度为正,并且对于给定的矢量长度有效。 您可以假设向量元素是小于的正整数10。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入向量可以任何方便,明确,平坦的列表或字符串格式给出。 输出矩阵可以是任何方便,明确,嵌套的列表或字符串格式,也可以是带有两个矩阵维的平面列表。(或者,当然,如果您的语言包含矩阵类型,则作为矩阵类型。) 适用标准代码高尔夫球规则。 …

4
一周中压缩的天数
输入星期几列表,则输出列表中最短的排序表示形式。 输入的格式是由一个或多个双字符子串的字符串Su(星期日), Mo(星期一), Tu(等), ,We,Th, Fr和Sa。输入不一定必须以排序的顺序给出。 要将输入转换为输出格式, 从星期天开始按星期几对输入进行排序(例如ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 如果不引起歧义,请将缩写词减少到一个字母。例如,之所以SuMoTuWe成为,SMTW是因为第一个S不可能在星期六,因为这样会使输出未排序(与T相同)。但是,ThFrSa应该成为ThFS,因为星期二和星期四都在星期五之前,并将其减小以TFS产生歧义。 如果输出为now MTWTF,则D改为输出(代表“ 工作日 s”)。同样,SS应该成为E一周结束。最后, SMTWTFS应该成为A对所有天。 输入和输出都必须是单个字符串。 由于这是code-golf,因此以字节为单位的最短代码为准。 测试用例: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu …

21
Javascript:创建一个1x的10x10数组
显然,使用单独的函数和库将面临艰巨的挑战,因此不允许使用它们。 您的代码必须符合ECMAscript规范(任何规范都可以),因此没有针对浏览器的答案。 实例化后,该数组必须可访问。 我有一个暂时不回答的答案。 注意:这项挑战是特定于javascript的,因为众所周知,使用javascript制作多维数组很不方便。

7
查找适合一组和的数组
考虑A长度数组n。该数组仅包含正整数。例如A = (1,1,2,2)。让我们将定义f(A)为的所有非空连续子数组之和的集合A。在这种情况下f(A) = {1,2,3,4,5,6}。产生步骤f(A) 如下: 的子阵列A是(1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)。它们各自的总和为1,1,2,2,2,3,4,4,5,6。因此,您从此列表中获得的集合是{1,2,3,4,5,6}。 任务 给定一组S以排序顺序给出的和,仅包含正整数和一个数组长度n,您的工作是输出至少一个X这样的数组f(X) = S。 例如,如果S = {1,2,3,5,6}and,n = 3则有效输出为X = (1,2,3)。 如果没有这样的数组,X您的代码应输出任何常量值。 例子 输入:n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13),可能的输出:X = (3, 5, 1, 4) 输入:n=6, S = (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.