Questions tagged «abstract-algebra»

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

1
数Mo环
循环是一个非常简单的代数结构。它是一个元组(G,+),其中G是一个集合,+是一个二元运算符G×G→G。即+从G中获取两个元素并返回一个新元素。还要求操作员满足两个属性 取消:对于每一个和b在ģ存在唯一的X和ÿ在ģ使得 a + x = b y + a = b 身份:有一个ê在摹使得对于每一个在摹 e + a = a a + e = a 如果您熟悉组的概念,您可能会注意到循环只是一个没有关联属性的组。 循环非常简单,因此人们喜欢添加更多规则以制作更有趣的新结构。一种这样的结构是穆方循环是一个循环,还满足以下四个标识的forall X,ÿ和ž在G ^ z + (x + (z + y)) = ((z + x) + z) + y ((y + z) + x) + z = …

13
逆排列索引
介绍 具有n个元素的列表的字典排列可以从0到n编号!-1.例如3!= 6个置换(1,2,3)将是(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)。 将排列应用于列表时,其元素的排列顺序与排列中的数字相同。例如,将置换(2,3,1)应用于l = (a,b,c)yield (l[2],l[3],l[1]) = (b,c,a)。 排列的逆定义为颠倒此操作的排列,即应用排列,然后其逆(反之亦然)不会修改数组。例如,(2,3,1)is 的逆(3,1,2),因为将其应用于(b,c,a)yields (a,b,c)。 同样,应用于排列本身的排列的逆值会产生整数1… n。例如,应用(3,1,2)到(2,3,1)产率(1,2,3)。 现在,我们将函数revind(x)定义为索引为x的排列的逆排列的索引。(如果您有兴趣,这是A056019。) 由于与指数置换我只修改了最后ķ列表中的项目当且仅当 0≤ 我 < ķ!,我们可以添加任意数量的元素到列表的开始,而不会影响revind(我)。因此,列表的长度不影响结果。 挑战 您的任务是实现revind(x)。您将编写一个完整的程序或函数,以单个非负整数x作为输入/参数,并以单个非负整数输出/返回结果。 输入和输出可以是0索引或1索引,但是它们之间必须保持一致。 禁止按索引生成排列,返回排列的索引或找到逆排列的内建函数。(允许生成所有排列或下一个排列的构建体。) 适用标准代码高尔夫球规则。 例子 下面的示例是0索引的。 Input Output 0 0 1 1 2 2 3 4 4 3 5 5 6 6 13 10 42 51 100 41 1000 …
17 code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

3
阿比利亚秩序
一些背景 在数学中,组是一个元组(G ^,•)其中G ^是一组和•是上的操作ģ使得对于任何两个元素X和ÿ在ģ,X • ÿ也是ģ。 对于某些X,ÿ,ž在G ^,碱性基团公理如下: ģ被关闭 •下即X • ÿ在ģ 操作•是关联的,即x •(y • z)=(x • y)• z ģ具有身份元素,即存在È在ģ使得 X • Ë = X为所有X 操作•是可逆的,即在G中存在a,b使得a • x = y和y • b = x 好的,那是小组。现在我们将一个Abelian组定义为一个组(G,•),使得•是可交换运算。即,x • y = y • x。 最后定义。组的顺序(G,•),表示为| G |,是集合G中元素的数量。 任务 阿贝尔阶是整数n,因此每个n阶组都是阿贝尔阶。OEIS中的阿贝尔订单顺序为A051532。给定整数n,您的工作是产生此序列的第n个项(1索引)。您必须支持最大最大整数的输入,以便不会溢出。 输入可以来自函数参数,命令行参数,STDIN或任何方便的参数。 输出可以从函数返回,打印到STDOUT或任何方便的东西。什么也不要写到STDERR。 分数是字节数,最短获胜。 例子 …

2
每日最佳高尔夫#6:掷出d20
关于系列 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 尽管我在本系列中有很多想法,但未来的挑战还没有定下来。如果您有任何建议,请在相关的沙箱帖子上让我知道。 第6洞:滚动d20 桌面RPG中最常见的模具是二十面模具(二十面体,通常称为d20)。掷骰子是您的任务。但是,如果您只是返回1到20之间的随机数,那将是微不足道的。因此,您的任务是为给定的模具生成一个随机的网。 我们将使用以下网络: 这是一个三角形带,因此可以很容易地将其表示为整数列表。例如,如果得到输入: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 那将对应于以下骰子(有趣的事实:这是魔术师使用的网:聚会生命计数器/旋转骰子)。 但是,这不是唯一代表此死的网络。根据我们展开脸部的方式,有60种不同的蚊帐。这里还有两个: [1, 8, 9, 10, 2, 3, 4, 5, 6, 7, 17, 18, 19, 11, 12, 13, 14, 15, 16, 20] [10, …

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

4
团体疗法:确定团体
编写一个程序,确定给定的有限岩浆的乘法表是否代表一个组。岩浆是具有关闭的二进制运算的集合,这意味着 对于G中的所有a,b,a * b再次在G中(闭合) 令(G,*)为岩浆。如果(G,*)是一个组 对于G中的所有a,b,c,(a * b)* c = a *(b * c)(关联性) G中存在元素e,使得G中所有a的e * a = a * e = a(中性元素的存在) 对于G中所有a,G中都有ab使得a * b = b * a = e其中e是中性元素(存在逆) 眼镜 输入的字符串为n ^ 2-1个字符(岩浆中每个元素一个字符,允许为0-9,az),并且仅代表逐行读取的表,省略了操作员名称。您可以假定输入代表一个有效的岩浆(这意味着每个元素在标题行/列中仅出现一次)。 示例:这里有Z_4的表 + | 0 1 2 3 ----------- 0 | 0 1 2 3 …

2
输出每个字段大小的原始元素
甲本原元素的有限域的是该领域的乘法群的生成元。换句话说,如果alphain F(q)是in的q−1第1个单位根,则in 被称为基本元素F(q)。这意味着可以将所有非零元素F(q)写成alpha^i某个(正)整数i。 该字段的所有元素F_{2^k}最多可以写为度为多项式,k-1系数为1或0。为了完成此操作,您的代码还需要输出一个不可约的次数多项式,k该多项式定义了您正在使用的字段。 任务是编写代码,该代码按顺序输出F_{2^k}您选择的原始元素k = 1 .. 32。 您的输出必须简单地k以您喜欢的任何格式列出原始元素的系数,然后在另一行上单独列出k+1不可约多项式的元素。k如果可能,请为每个值分开输出。 您的代码可能需要很长的时间,但是在提交答案之前,必须先运行它才能完成。 您不得使用任何内置函数或库函数来返回有限域的原始元素或测试元素是否为原始。 一个例子 因为k = 1唯一的原始元素是1。 因为k = 2我们有 F_4。这4个元素是,{0, 1, x, x + 1}因此有两个基本元素x和x + 1。所以代码可以输出 1 1 1 1 1 例如作为系数,其中第二行是不可约多项式,在这种情况下,该多项式x^2+x+1具有系数1 1 1。

5
查找XOR素数
在xnor提出的挑战中,我们被要求实现XOR乘法。在这一挑战中,目标是找到第一个nXOR素数。从以下定义可以看出,XOR素数与常规素数非常相似: 质数的定义:大于1的正数,除非将1与自身相乘,否则不能通过将两个数相乘而形成。 XOR质数的定义:大于1的正数,除非通过1与自身的XOR乘积,否则不能通过两个数的XOR乘积来形成。注意,XOR质数组成oeis序列A014580。 XOR乘法定义为不带进位的二进制长乘法。您可以在xnor的Challenge中找到有关XOR乘法的更多信息。 输入: 一个整数n。 输出: 第一个nXOR素数。 以下是500以下的XOR素数: 2 3 7 11 13 19 25 31 37 41 47 55 59 61 67 73 87 91 97 103 109 115 117 131 137 143 145 157 167 171 185 191 193 203 211 213 229 239 241 247 253 …

3
掷骰子
掷骰子 因此,前一段时间我在掷骰子,想到了一个挑战。 给定具有从输入中取出的网和移动列表的多维数据集,请在末尾的底部找到正方形。 我将在此处的示例中使用此图像。 输入值 您输入一个带有动作列表的字符串。该字符串仅包含大写ASCII字母N,S,W和E。这对应于将多维数据集向该方向滚动一步。 在图片中,一个N将使底面变成6。在此图片中,North远离相机,South朝向相机,East右侧,West左侧。 您还可以采用以下格式的字符串:1P 2P 3P 4P 5P 6P,其中每个P是N,S,W,E,T和B中的一个位置。T&B是底部和顶部。 数字是带有该数字的面部,字母代表面部所在的位置。如果不清楚,网将始终按该编号排序,因此1P 2P 3P 4P 5P 6P,而不是2B 1T 3N 4S 5W 6E。 图像中的位置是1S 2B 3E 4W 5T 6N。 输出量 您的程序应输出一个代表底部的数字。 测试用例 (nothing), 1S 2B 3E 4W 5T 6N -> 2 N, 1S 2B 3E 4W 5T 6N -> …

7
定义一个包含256个元素的字段
甲字段在数学是一组数字,与在其上定义,使得它们满足特定公理加法和乘法操作(Wikipedia中所述;也见下文)。 有限域可以包含p n个元素,其中p素数和n自然数。在这个挑战中,让我们接受p = 2和n = 8,让我们创建一个包含256个元素的字段。 该字段的元素应为包含0和的范围内的连续整数1: -128 ... 127 0 ... 255 或任何其他此类范围 为抽象的“加法”和抽象的“乘法” 定义两个函数(或程序,如果更容易的话),a(x,y)以m(x,y)使它们满足字段公理: 一致性:a(x,y)与m(x,y)时同参数调用产生相同的结果 闭性:结果a和m在相关范围内的整数 关联性:对于任何x,y并且z在范围内a(a(x,y),z)等于a(x,a(y,z));一样m 交换性:对于任何x和y范围内的,a(x,y)是等于a(y,x); 一样m 分布:对于任何x,y并且z在范围内,m(x,a(y,z))等于a(m(x,y),m(x,z)) 中性元素:对于x范围内的任何元素,a(0,x)等于x,并且m(1,x)等于x 否定:对于任何x在的范围内,存在着这样的y即a(x,y)是0 逆:对于任何x≠0在的范围内,存在着这样的y即m(x,y)是1 名称a和m只是示例;您可以使用其他名称或未命名的函数。答案的分数是和的字节长度之a和m。 如果您使用内置函数,也请用文字描述它产生的结果(例如,提供一个乘法表)。

16
具有自定义标签的二面体D4组组成
二面体组D4D4D_4是正方形的对称组,即通过旋转和反射将正方形变换为自身的移动。它由8个元素组成:旋转0、90、180和270度,以及在水平,垂直和两个对角线上的反射。 图片全部来自Larry Riddle的可爱页面。 挑战在于如何构成这些动作:给定两个动作,输出的动作等同于一个接一个地执行它们。例如,先执行第7步再执行第4步,与执行第5步相同。 请注意,将顺序切换为移动4然后移动7将产生移动6。 结果列于下表;这是D 4组的Cayley表。因此,例如,输入端7 ,4应该产生输出5。D4D4D_47,47,47, 4555 1234567812345678123456782341786534126587412387565867134267583124758624138675423112345678123456781234567823418756341265874123786557681324685731427685421385762431\begin{array}{*{20}{c}} {} & {\begin{array}{*{20}{c}} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ \end{array} } \\ {\begin{array}{*{20}{c}} 1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\ 7 \\ 8 \\ \end{array} …

4
查找有限组的子组数
定义 如果您已经知道组,有限组和子组的定义,则可以跳过此部分。 团体 在抽象代数中,一个组是一个元组(G,∗),其中G是一个集合,而∗是一个函数G×G→G,使得下式成立: 封闭:对于所有的x,y在ģ,X * Y也是ģ(由事实暗示*是一个函数G×G ^→G )。 关联:对所有X,Y,Z在ģ,(X * Y)* Z = X *(Y * Z) 。 同一性:存在一个元素ê在ģ使得对于所有X中ģ,X * E = X = E * X。 逆:对于每个X在ģ,存在一个元素ý在ģ使得X * Y = E = Y * X,其中ê是在前面的项目符号点中提到的单位元。 有限群体 甲有限组是一组(G,*) ,其中G ^是有限的,即,具有有限多个元件。 亚组 组(G,∗)的子组 (H,∗)使得H是G的子集(不一定是适当的子集),而(H,∗)也是一个组(即满足上述4个条件)。 例子 考虑二面体组D 3 (G,∗),其中G = {1,A,B,C,D,E},并且∗在下面定义(这样的表称为Cayley表): …


5
代数曲线绘图仪
代数曲线是“ 2D平面”的某个“ 1D子集”,可以描述为{(x,y) in R^2 : f(x,y)=0 }多项式的零集f。在这里,我们将2D平面视为真实平面R^2这样我们就可以轻松想象出这种曲线的样子,基本上是可以用铅笔绘制的东西。 例子: 0 = x^2 + y^2 -1 半径为1的圆 0 = x^2 + 2y^2 -1 椭圆 0 = xy 一个十字形状,在x轴的基本上联合和y轴 0 = y^2 - x 抛物线 0 = y^2 - (x^3 - x + 1)一个椭圆曲线 0 = x^3 + y^3 - 3xy 笛卡尔的叶 …

4
计算给定大小的阿贝尔群
背景 上一次,我们计算了给定大小的组,这不是一个简单的问题。 这次,我们将仅计算Abelian组,即具有可交换运算的组。形式上,一组(G,*)是阿贝尔如果X * Y = Y * X为所有的x,y在ģ。 这种方法使问题变得更加简单,因此我们将有效地对其进行计数。 任务 编写一个程序或函数,该程序或函数接受一个非负整数n作为输入,并打印或返回n阶的非同构阿贝尔群。 一种计算组数的方法(将用A(n)表示)是通过观察以下内容: A(0)= 0 如果p是素数,则A(p k)等于k的整数分区数。(由OEIS A000041提供) 如果n = mk,并且m和k是互质的,则A(n)= A(m)A(k)。 您可以使用此方法或任何其他方法来计算A(n)。 测试用例 Input Output 0 0 1 1 2 1 3 1 4 2 5 1 6 1 7 1 8 3 9 2 10 1 11 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.