问题标签 [abstract-algebra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
353 浏览

oop - 根据数学群论设计对象好不好

例如,假设您正在设计一个名为 的对象类Car,它支持用符号 表示的二元运算+,即您可以执行car1 + car2wherecar1car2are 的实例Car

当您刚刚完成抽象代数课程时,您尝试Car根据数学群论将课程设计为一个“群”,因此该课程Car具有以下属性:

  • car1 + car2返回另一个实例Car
  • (car1 + car2) + car3 == car1 + (car2 + car3)
  • 对于任何实例carx,都有car0这样一个实例carx + car0 == car0 + carx == carx
  • 每个实例carx都有它的逆carx_inv,使得carx + carx_inv == carx_inv + carx == car0

你能给我一个例子,这种实现是必要的,或者至少是有益的。

0 投票
2 回答
2723 浏览

algebra - 抽象代数与编程的关系

我是一名计算机科学专业的学生,​​我正在学习抽象代数,尤其是Group theory.

我已经编程了大约 5 年,但我从未使用过抽象代数中学到的东西。

编程和抽象代数之间的上下文是什么?我真的必须知道。

0 投票
2 回答
4205 浏览

math - 在有限域中计算乘法逆

我写了一个扩展的欧几里得算法函数

也就是说,对于非零有限域元素a,bGF ( p m ),计算st使得sa + tb = 1。有没有一种方法可以xgcd用来计算域中的乘法逆元?也就是说,给定a ∈ GF( p m ),我想计算b使得ab = 1 ∈ GF( p m )。


我也实现了功能

其中(+)(-)(*)(^)ffQuotRem的行为与您预期的一样,并且degree是有限域的常用欧几里得函数(域元素的多项式表示的次数)。

(答案不一定需要在 Haskell 中。)

0 投票
1 回答
1203 浏览

c - 如何通过高效算法获得有限集合上的所有代数关联运算?

一组 2 个元素的二元运算数是2^(2*2)=16. 在此处输入图像描述
该集合上的关联二元运算数仅为 8。
在此处输入图像描述
一组 3 个元素的二元运算数为 3^(3*3)=19683。
该集合上的关联二元运算数只有 113。如何知道一组 n 个元素有多少关联二元运算?

此外,为了获得所有这 113 次操作并写入文件,还需要编写一个程序。
如果我将尝试获取所有 19683 操作,然后检查所有 19683 操作的关联属性“a*(b c)==(a b)*c”,这将起作用,但这需要很长时间=4个元素!
如何编写一个高效的算法来解决这个任务?
请帮我!

0 投票
0 回答
219 浏览

z3 - 如何使用 Z3 SMT-LIB 证明 Frobenius 代数中的定理

我们在 Frobenius 代数中证明以下定理

在此处输入图像描述

使用以下代码执行证明

对应的输出是

请在此处在线运行此证明

我的主张是这个例子是 Z3 在 Frobenius 代数中的第一个应用。你同意吗?

0 投票
2 回答
314 浏览

z3 - Z3 无法证明两个使用 Kleene 代数和测试的简单程序之间的等价性,但 Mathematica 和 Reduce 能够

我们这里的问题是要证明

在此处输入图像描述

使用带有测试的 Kleene 代数。

在 b 的值被 p 保留的情况下,我们有交换律条件 bp = pb;并且两个程序之间的等价性简化为等式

在此处输入图像描述

在 p 不保留 b 的值的情况下,我们有交换律条件 pc = cp;并且两个程序之间的等价性简化为等式

在此处输入图像描述

我正在尝试使用以下 SMT-LIB 代码证明第一个等式

但我正在获得timeout;就是说Z3不能处理交换性条件bp=pb。请在此处在线运行此示例。

Z3 无法证明这些方程,但 Mathematica 和 Reduce 能够。Z3 没有定理证明器那么强大。你同意吗?

0 投票
0 回答
91 浏览

z3 - Z3是唯一能够反驳REL051+1.p的系统吗?

关系代数REL051+1.p中的问题读取

使用 TPTP 语法和 fof 对应的代码是

正如您在TPTP中看到的,所有 ATP 都无法证明此类问题。

使用以下 SMT-LIB 用 Z3 驳斥了该定理

相应的输出是

请在此处在线运行此示例

我的问题是:这个对 Z3 的反驳是正确的吗?

0 投票
1 回答
92 浏览

android - 使用 Canvas 绘制数千个 Rects

我正在尝试制作http://arapaho.nsuok.edu/~deckar01/Zvis.html的原生 Android 版本

所以,我制作了一个自定义视图来绘制所有需要的正方形。当然,一旦数字变得足够大以使 Canvas 开始绘制数千个正方形,此绘图最终将花费 10 秒。

有一个更好的方法吗?似乎有一些明显的事情我不想做/使用。

视图的 onDraw 方法如下,以防万一。有任何想法吗?

0 投票
0 回答
97 浏览

z3 - 如何使用 Z3 证明单参数组的定理

使用 Z3 可以证明

在此处输入图像描述

形成一个单参数组。

使用以下 Z3 代码执行证明:

相应的输出是

请在此处在线运行代码。

其他例子:证明

在此处输入图像描述

形成一个单参数组。

使用以下 Z3 代码执行证明:

相应的输出是

请在此处在线运行此代码

其他例子:证明

在此处输入图像描述

形成一个单参数组。

证明在这里在线给出,四维扩展在这里在线给出

最后几个例子:证明

在此处输入图像描述

形成一个单参数组。

证明在这里在线给出。

证明

在此处输入图像描述

形成一个单参数组。

证明在这里在线给出。

更一般地,证明

在此处输入图像描述

形成一个单参数组。

证明在这里在线给出。

一个三维扩展:证明

在此处输入图像描述

形成一个单参数组。

证明在这里在线给出。

双曲函数的一个例子:证明

在此处输入图像描述

形成一个单参数组。

证明是在网上给出的 here

我的问题是:

  1. 可以使用数组来证明更高维度吗?

  2. 我声称 Z3 是唯一能够执行这些证明的系统。你同意吗?

0 投票
1 回答
87 浏览

c# - 这个签名是什么{零:α;附加:α -> β -> α;} 姓名?

我有 Monoid 和 Builder 接口:

并想实现从 Monoid 到 Builder 的转换算法。我试图这样做,并创建了这样的东西:

但在实际任务中,我需要可以将项目累积到该项目列表的构建器,以及具有相同累积原理的其他构建器。我的 Builders 必须实现下一个接口:

而且我需要有可能从 { zero, append } 签名创建构建器。像这样:

我针对新情况实施了下一个 BuilderMakerFor:

一切都很好,除了一点:我不知道如何命名 X。

名字叫 Monoid。

什么是

姓名?