问题标签 [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.
oop - 根据数学群论设计对象好不好
例如,假设您正在设计一个名为 的对象类Car
,它支持用符号 表示的二元运算+
,即您可以执行car1 + car2
wherecar1
和car2
are 的实例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
你能给我一个例子,这种实现是必要的,或者至少是有益的。
algebra - 抽象代数与编程的关系
我是一名计算机科学专业的学生,我正在学习抽象代数,尤其是Group theory
.
我已经编程了大约 5 年,但我从未使用过抽象代数中学到的东西。
编程和抽象代数之间的上下文是什么?我真的必须知道。
c - 如何通过高效算法获得有限集合上的所有代数关联运算?
一组 2 个元素的二元运算数是2^(2*2)=16
.
该集合上的关联二元运算数仅为 8。
一组 3 个元素的二元运算数为 3^(3*3)=19683。
该集合上的关联二元运算数只有 113。如何知道一组 n 个元素有多少关联二元运算?
此外,为了获得所有这 113 次操作并写入文件,还需要编写一个程序。
如果我将尝试获取所有 19683 操作,然后检查所有 19683 操作的关联属性“a*(b c)==(a b)*c”,这将起作用,但这需要很长时间=4个元素!
如何编写一个高效的算法来解决这个任务?
请帮我!
z3 - Z3 无法证明两个使用 Kleene 代数和测试的简单程序之间的等价性,但 Mathematica 和 Reduce 能够
我们这里的问题是要证明
使用带有测试的 Kleene 代数。
在 b 的值被 p 保留的情况下,我们有交换律条件 bp = pb;并且两个程序之间的等价性简化为等式
在 p 不保留 b 的值的情况下,我们有交换律条件 pc = cp;并且两个程序之间的等价性简化为等式
我正在尝试使用以下 SMT-LIB 代码证明第一个等式
但我正在获得timeout
;就是说Z3不能处理交换性条件bp=pb。请在此处在线运行此示例。
Z3 无法证明这些方程,但 Mathematica 和 Reduce 能够。Z3 没有定理证明器那么强大。你同意吗?
z3 - Z3是唯一能够反驳REL051+1.p的系统吗?
关系代数REL051+1.p中的问题读取
使用 TPTP 语法和 fof 对应的代码是
正如您在TPTP中看到的,所有 ATP 都无法证明此类问题。
使用以下 SMT-LIB 用 Z3 驳斥了该定理
相应的输出是
请在此处在线运行此示例
我的问题是:这个对 Z3 的反驳是正确的吗?
android - 使用 Canvas 绘制数千个 Rects
我正在尝试制作http://arapaho.nsuok.edu/~deckar01/Zvis.html的原生 Android 版本
所以,我制作了一个自定义视图来绘制所有需要的正方形。当然,一旦数字变得足够大以使 Canvas 开始绘制数千个正方形,此绘图最终将花费 10 秒。
有一个更好的方法吗?似乎有一些明显的事情我不想做/使用。
视图的 onDraw 方法如下,以防万一。有任何想法吗?
z3 - 如何使用 Z3 证明单参数组的定理
使用 Z3 可以证明
形成一个单参数组。
使用以下 Z3 代码执行证明:
相应的输出是
请在此处在线运行代码。
其他例子:证明
形成一个单参数组。
使用以下 Z3 代码执行证明:
相应的输出是
请在此处在线运行此代码
其他例子:证明
形成一个单参数组。
最后几个例子:证明
形成一个单参数组。
证明在这里在线给出。
证明
形成一个单参数组。
证明在这里在线给出。
更一般地,证明
形成一个单参数组。
证明在这里在线给出。
一个三维扩展:证明
形成一个单参数组。
证明在这里在线给出。
双曲函数的一个例子:证明
形成一个单参数组。
证明是在网上给出的 here
我的问题是:
可以使用数组来证明更高维度吗?
我声称 Z3 是唯一能够执行这些证明的系统。你同意吗?
c# - 这个签名是什么{零:α;附加:α -> β -> α;} 姓名?
我有 Monoid 和 Builder 接口:
并想实现从 Monoid 到 Builder 的转换算法。我试图这样做,并创建了这样的东西:
但在实际任务中,我需要可以将项目累积到该项目列表的构建器,以及具有相同累积原理的其他构建器。我的 Builders 必须实现下一个接口:
而且我需要有可能从 { zero, append } 签名创建构建器。像这样:
我针对新情况实施了下一个 BuilderMakerFor:
一切都很好,除了一点:我不知道如何命名 X。
名字叫 Monoid。
什么是
姓名?