Questions tagged «abstract-algebra»

摘要代数是对代数结构的研究,包括组,环,场,向量空间等。

2
这些辫子相等吗?
如果您不熟悉辫子理论,建议您先阅读本节。这个问题假设您至少熟悉手头的概念,并假设您熟悉小组理论 让我们定义σ Ñ为其中所述编织物Ñ从顶部越过所述第链(一个索引)的n + 1个链,和σ Ñ -是的逆σ Ñ(即在N + 1个链与第n个链交叉)。 编织物组乙Ñ然后通过产生<σ 1,σ 2,σ 3,。。。,σn -1 >。因此,B n上的每个编织都可以写成σ编织的乘积。1个 确定一组上的两个辫子是否相等并不是一件容易的事。这可能是很明显,σ 1 σ 3 =σ 3 σ 1,但它是不那么明显的是,例如σ 2 σ 1 σ 2 =σ 1 σ 2 σ 1。2 因此,问题是“如何确定两个辫子是否相同?”。上面的两个示例分别代表了这一点。通常,以下关系称为阿丁关系: σ 我 σ Ĵ =σ Ĵ σ 我 ; i-j> 1 σ 我 …

4
平方根数
任务如下:给定一个正整数x和一个素数n > x,输出最小的正整数y,使(y * y) mod n = x。这个问题的重要部分是下面指定的时限,其中不包括强力解决方案。 如果没有这样的值,y则应输出您的代码N。 测试用例 (2, 5, N), (3, 5, N), (4, 5, 2), (524291, 1048583, N), (529533, 1048583, N), (534775, 1048583, 436853), (540017, 1048583, 73675), (536870913, 1073741827, 375394238), (542239622, 1073741827, 267746399), (547608331, 1073741827, N), (552977040, 1073741827, 104595351), (1099511627676, 1099511627791, N), (1099511627677, 1099511627791, 269691261521), …

3
GF(5)上的不可约多项式
在一些系数的多项式字段 ˚F被称为不可约超过˚F,如果它不能被分解成低次多项式与系数的乘积˚F。 考虑Galois域 GF(5)上的多项式。该字段包含5个元素,即数字0、1、2、3和4。 任务 给定正整数n,计算在GF(5)上度为n的不可约多项式的数量。这些只是系数为0-4的多项式,不能分解为系数为0-4的其他多项式。 输入值 输入将是单个整数,并且可以来自任何标准来源(例如STDIN或函数参数)。您必须支持最大最大整数的输入,以使输出不会溢出。 输出量 打印或返回在GF(5)上不可约的多项式的数量。请注意,这些数字很快就会变大。 例子 In : Out 1 : 5 2 : 10 3 : 40 4 : 150 5 : 624 6 : 2580 7 : 11160 8 : 48750 9 : 217000 10 : 976248 11 : 4438920 请注意,这些数字构成了OEIS中的序列A001692。

2
分解多项式
给定度数严格大于1的整数多项式,请将其完全分解为度数严格大于1的整数多项式的组合。 细节 一个完整的多项式是唯一的整数作为系数的多项式。 给定两个多项式p和q所述组合物由下式定义(p∘q)(x):=p(q(x))。 整数多项式的分解是整数多项式p的有限有序序列,q1,q2,...,qn其中deg qi > 1对1 ≤ i ≤ n和和p(x) = q1(q2(...qn(x)...)),并且所有qi不可进一步分解。分解不一定是唯一的。 您可以使用系数列表或内置的多项式类型作为输入和输出。 请注意,用于此任务的许多内建函数实际上会分解给定字段上的多项式,而不一定是整数,而此挑战则需要分解整数多项式。(某些整数多项式可能允许分解为整数多项式以及包含有理多项式的分解。) 例子 x^2 + 1 [x^2 + 1] (all polynomials of degree 2 or less are not decomposable) x^6 - 6x^5 + 15x^4 - 20x^3 + 15x^2 - 6 x - 1 [x^3 - 2, …

5
稀疏量角器
给定一些正整数n,设计一个带有最少标记数的量角器,使您能够测量所有角度的整数倍2π/n(每个角度一次测量)。 细节 作为输出,可以在的范围内输出的整数列表0到n-1(或1到n)表示每一个标记的位置。或者,也可以输出长度的串/列表n与#在每个标记的位置和_(下划线)在有无。(或两种不同的字符,如果更方便的。) 实施例:对于n = 5您需要的3马克到能够测量所有角度2π/5, 4π/5, 6π/5, 8π/5, 2π通过设置(例如)在1马克0,在1马克2π/5和1马克6π/5。我们可以将其编码为列表[0,1,3]或字符串##_#_。 例子 注意,输出不一定是唯一的。 n: output: 1 [0] 2 [0,1] 3 [0,1] 4 [0,1,2] 5 [0,1,2] 6 [0,1,3] 7 [0,1,3] 8 [0,1,2,4] 9 [0,1,3,4] 10 [0,1,3,6] 11 [0,1,3,8] 20 [0,1,2,3,6,10] PS:这类似于稀疏标尺问题,但是我们考虑使用圆形(角形)刻度,而不是线性刻度(两端)。 PPS:此脚本应为每个脚本计算一组标记的一个示例n。在线尝试! PPPS:正如@ngn所指出的,此问题等效于找到阶的循环组的最小差分基n。最小订单在http://oeis.org/A283297中列出,一些理论界限在https://arxiv.org/pdf/1702.02631.pdf中找到

6
找出有理生成函数的系数
如果我们写一个数字序列作为幂级数的系数,则该幂级数称为该序列的(普通)生成函数(或Gf)。也就是说,如果对于某些函数F(x)和整数系列,a(n)我们有: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 然后F(x)是的生成函数a。例如,几何级数告诉我们: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) 因此,的生成函数1, 1, 1, ...为1/(1-x)。如果我们对上面方程的两边求和并乘以x得到以下等式: x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 因此,的生成函数1, 2, 3, ...为x/(1-x)^2。生成函数是一个非常强大的工具,您可以使用它们来做很多有用的事情。在这里可以找到简短的介绍,但是要获得真正彻底的解释,请参见惊人的图书生成功能学。 在此挑战中,您将有理函数(两个具有整数系数的多项式的商)作为两个整数系数数组的输入作为输入,首先是分子,然后是分母。例如,功能f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

4
乘以Pauli矩阵
该泡利矩阵是一组其在量子物理学非常普遍出现的2x2矩阵(不,你不需要知道这个挑战任何量子物理)。如果我们在集合中包括身份,则四个矩阵为: σ0 = σ1 = σ2 = σ3 = [1 0] [0 1] [0 -i] [1 0] [0 1] [1 0] [i 0] [0 -1] 乘以二这些将永远给另一个保利矩阵,尽管它可以通过复杂的阶段之一相乘1,i,-1,-i。例如,。σ1σ3 = -iσ2 您的任务是将多个Pauli矩阵相乘并返回结果矩阵和相位。输入将被给定为数字的非空字符串0到3表示矩阵来。输出应该含有单个数字迭代矩阵的字符串,任选地被前面,或者以指示相(是)。σ0σ3i--i--1 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 您不得使用任何与Pauli矩阵相关的内置(或第三方)功能。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。 测试用例 1 => 1 13 => -i2 000 => 0 123 => i0 03022 => 3 02132230 => …

2
这是哪个有限的阿贝尔群?
描述 编写一个函数f(m, G),该函数接受映射m和一组不同的非负整数作为其参数G。 m应该将中的整数对映射G到中的新整数G。(G,m)可以保证形成一个有限的阿贝尔群,但是的任何元素都G可以是恒等式。 有一个重要的定理说: [每个有限阿贝尔群]与素数次循环群的直接积同构。 f必须[p1, ... pn]以升序返回主要力量列表,以便 例子 f((a, b) → (a+b) mod 4, [0, 1, 2, 3])应该返回[4],因为参数描述了Z 4组。 f((a, b) → a xor b, [0, 1, 2, 3])应该返回[2, 2],因为参数描述了Z 2 ×Z 2同构的基团。 f((a, b) → a, [9])应该返回[],因为参数描述了琐碎的组;即零个循环基团的乘积。 定义m如下: (a, b) → (a mod 3 + b mod …

5
排列的组成–集团产品
给定两个不连续循环形式的排列,以不连续循环形式输出其乘积/组成。 要查找组成,请将不相交的循环转换为两行符号的排列。循环的不连续部分中的每个数字都映射到同一部分中跟在其后的数字。它环绕。所以1 -> 5,5 -> 1,2 -> 4,4 -> 2。如果找不到数字3 -> 3,则会将其映射到自身。第一个不相交的周期也可以写成(1 5)(2 4)(3)。这些映射将转换为两行,如下所示(请注意,P和Q的顺序相反): 通过重新排列第二个(最左)排列的列,使其第一行与第一个(最右)排列的第二行相同,可以得到两个排列的乘积。然后可以将乘积写为修改后的第二排列的第二行上的第一排列的第一行。 维基百科文章 规则: 输入将以列表形式或类似格式给出 您可能不会采取类似(1 5)(2 4)as之类的[5, 4, 3, 2, 1]已经两行的形式(将索引映射为值) 并非每个组中都必须有所有数字,所以您可能会有(1 5)·(1 2),导致(2 5 1)。 您的输出应该可以用作输入。 您不需要使用空循环来支持输入(1 5)·()。取而代之的是(1 5)·(1)或等价的。 由于循环回绕,因此顺序不重要,只要结果正确即可。 您可以从零或一开始。没关系,因为结果相同。 数字可以大于9。 您可能在输出中多次包含相同的数字。所以[[1],[1]]是不允许的。 注意,该操作不是可交换的!我将Q放在P之前,因为这是Wikipedia所做的。您可以选择任何顺序,但要指定不同的顺序。 最短的代码胜出 允许内置,但是如果您使用内置的,请在不使用的情况下显示解决方案。 例子: 并未显示所有等效的输出可能性 Input Output [[1, 5], [2, 4]], [[1, …

25
计算相对论速度
在狭义相对论中,移动物体相对于另一个在相反方向移动的物体的速度由以下公式给出: s = v + u1 + v u / c2。s=v+ü1个+vü/C2。\begin{align}s = \frac{v+u}{1+vu/c^2}.\end{align} s = ( v + u ) / ( 1 + v * u / c ^ 2) 在这个公式中,和是物体速度的大小,是光速(大约是,对此非常接近挑战)。vvvüüuCCc3.0 × 108米/ 秒3.0×108米/s3.0 \times 10^8 \,\mathrm m/\mathrm s 例如,如果一个对象在移动v = 50,000 m/s,而另一个对象在移动u = 60,000 m/s,则每个对象相对于另一个的速度大约为s = 110,000 m/s。这就是您在伽利略相对论(速度简单地相加)下所期望的。但是,如果v …

4
多项式长除法
实现多项式长除法,该算法将两个多项式相除并获得商和余数: (12x ^ 3-5x ^ 2 + 3x-1)/(x ^ 2-5)= 12x-5 R 63x-26 在程序中,您将多项式表示为数组,常数项位于尾部。例如,x ^ 5-3x ^ 4 + 2x ^ 2-x +1将变为[1,-3,0,2,-1,1]。 您将要编写的长除法函数将返回两个值:商和余数。您不需要处理数值不精确和算术错误。不要使用数学库来完成工作,但是,您可以使函数能够处理符号值。最短的代码获胜。 例: div([12, -5, 3, -1], [1, 0, -5]) == ([12, -5], [63, -26])

2
飞机爆炸
该吹胀是代数几何中的有力工具。它可以去除奇点从代数集中同时保留其其余结构。 如果您对这些都不熟悉,请不要担心,实际的计算并不难理解(请参阅下文)。 下面我们考虑爆炸了点(0,0)(0,0)(0,0)2D中的代数曲线 二维的代数曲线由两个变量的多项式的零位给出(例如p(x,y)=x2+y2−1p(x,y)=x2+y2−1p(x,y) = x^2 + y^2 - 1 对于单位圆,或者 p(x,y)=y−x2p(x,y)=y−x2p(x,y) = y-x^2抛物线)。那条曲线的爆炸(在(0,0)(0,0)(0,0))由两个多项式给出 r,sr,sr,s如下定义。都rrr 和 sss 确实描述 ppp 具有(可能)的奇点 (0,0)(0,0)(0,0) 删除。 挑战 给定一些多项式 ppp, 找 rrr 和 sss 如下定义。 定义 首先请注意,我在这里所说的一切都是简化的,并不完全符合实际定义。 给定多项式 ppp 在两个变量中 x,yx,yx,y该爆破是由两个多项式给出r,sr,sr,s 再次在两个变量中每个。 要得到 rrr 我们首先定义 R(x,v):=p(x,vx)R(x,v):=p(x,vx)R(x,v) := p(x,vx)。然后R(x,v)R(x,v)R(x,v) 大概是 xxx,即 R(x,v)=xn⋅r(x,v)R(x,v)=xn⋅r(x,v)R(x,v) = x^n \cdot r(x,v) …

10
弦的旋转对称
旋转“是通过将字符串分成两部分并颠倒其顺序进行的”。如果对象在应用操作之后未更改,则该对象在操作下是对称的。因此,“旋转对称”是字符串在“旋转”之后保持不变的事实。 给定一个非空字符串,该字符串s仅包含从a到的字母z,输出该字符串旋转对称性的最高顺序。 测试用例: input output a 1 abcd 1 abab 2 dfdfdfdfdfdf 6 这是 代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

1
负XOR素数
大约一年前,您被要求找到XOR素数。这些是在以2为底进行XOR乘法时其唯一因子为1的数字,以及它们本身。现在将使事情变得更加有趣。 我们将在基数-2中找到XOR质数 转换为基-2 基数-2与其他所有基数非常相似。最左边的位置是1s位置(1 =(-2)0),其旁边是-2s位置(-2 =(-2)1),其次是4s位置(4 =(-2 )2),依此类推。最大的不同是,负数可以以-2为基表示,而没有任何负号。 以下是一些示例转换: Decimal | Base -2 ----------------- 6 | 11010 -7 | 1001 12 | 11100 -15 | 110001 Base -2中的XOR加法 Base -2中的XOR加法与二进制中的XOR加法几乎相同。您只需将数字转换为Base -2并在适当的位置对每个数字进行XOR。(这与没有进位的加法相同) 这是逐步完成的示例: (我们将使用符号+'表示以-2为基数的XOR加法) 从基数10开始: 6 +' -19 转换为基数-2: 11010 +' 10111 添加它们时不要携带: 11010 +' 10111 --------- 01101 将结果转换回以10为基数: -3 Base …

24
生成Z_n的组表
组是数学中广泛使用的结构,并且在计算机科学中具有应用。此代码挑战涉及为累加组Z n创建组表的最少字符数。 表格的构造方式:对于Z n,元素为{0,1,2,...,n-1}。该表将具有n行和n列。对于表的第ij个条目,该值为i + j mod n。例如,在Z 3中,第1-2个条目(如果将起始行/列计算为1,则为第2行,第3列)为(1 + 2)%3 = 0(请参见示例输出)。 输入:一个正整数,n 输出:一个表,它是Z n的文本表示形式,如上所述构造,并在示例输出中显示如下。空格是可选的 输入样例: 3 样本输出: 0 1 2 1 2 0 2 0 1 输入样例: 5 样本输出: 0 1 2 3 4 1 2 3 4 0 2 3 4 0 1 3 4 0 1 …
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.