问题标签 [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.
haskell - Do 符号和 Monad 组合
我是 Haskell 初学者,我仍在学习范畴论及其在计算机科学中的实际应用。
昨天我看了伯克利大学关于范畴论的几场讲座,它的大部分内容都展示了环、半群、群、岩浆、幺半群等的数学视图。
因此,我脑海中提出了关于一元组合和 kleisli 范畴的问题。因此,我想向 Haskell/Category Theory 专家提问。
do符号是一种单子组合吗?
问候,
巴勃罗·帕拉达
postgresql - Algebird HyperLogLog - 寄存器索引和寄存器值位
我是 HyperLogLog 和 Scala 的新手,我正在尝试使用 Twitter Algebird 的 HyperLogLog 实现 - https://github.com/twitter/algebird/blob/develop/algebird-core/src/main/scala/com/twitter/algebird /HyperLogLog.scala。
在 HyperLogLog 的其他实现中(例如 Postgres https://github.com/aggregateknowledge/postgresql-hll的这个),我可以使用存储桶的数量(使用 log2m)以及基于寄存器的宽度来调整算法关于我预期的肉欲和准确性要求。
我无法理解这些值是如何在 Algebird 实现中使用/计算的。具体来说,我正在使用该HyperLogLogMonoid
课程。
c++ - C:将大数从字符串转换为整数模n
我正在尝试将非常大的数字(> 100 位)从字符串转换为 Z n加法组(模 n)中的整数。n 保证在标准 C int 范围内(比如 n=12345)。
atoi then "%" 和 BigIntiger 的简单方法在这里都不起作用。
任何想法如何实施?
z3 - 使用 Leo II 证明 Frobenius 代数中的定理
使用带有 TPTP thf 语言的 ATP Leo II 可以证明 Frobenius 代数和开闭 cobordisms 中的许多定理。我使用以下代码
使用前面的代码和下面的句子
Leo II 产生的输出是
我的问题是:如何使用大锤从 Leo II 的输出中为人类提取证据?
algebra - 交换模数的条件
我一直在解决一个问题,希望有人可以帮助我解决这个问题(可能已经研究过了,我不知道)。对于给定的 a和 to 数字m和n,是否有任何特殊条件可以实现等式
(a (mod m))(mod n)=(a (mod n))(mod m)
持有?我一直试图想出一些东西,但直到现在我都没有头绪。谁能帮我解决这个问题?
谢谢!!
monads - Monad:为什么身份很重要,如果一个系列中没有这样的特殊成员会发生什么?
我正在尝试学习 的概念monad
,我正在观看这个出色的视频Brian Beckend 试图解释什么是 monad。
当他谈到 时monoid
,它是一个类型的集合,它有一个组合规则,这个组合必须遵守 2 个规则:
- 联想:
x @ (y @ z ) = (x @ y) @ z
- 集合中的特殊成员:
x @ id = x and id @ x = x
我正在使用@
代表作文的符号。id
指特殊成员。
第二点是我想要理解的。为什么这很重要?如果没有这样的特殊成员怎么办?
当我学习新概念时,我总是试图将这些抽象的概念与其他一些具体的事物联系起来,这样我才能充分理解和背诵它们。
所以我想要联系monad
和关注monoid
的是lego
。因此,乐高套装中的所有积木构成了一个集合。组合规则是将它们组合成新形状的积木。很明显,组合遵循第一条规则:联想。但是没有特殊的积木可以与其他积木组合并得到相同的回报。所以它不遵守第二条规则。
但是乐高仍然是高度可组合的。当乐高不遵守第二条规则时,遗漏了什么?后果是什么?
或者这样说,与其他monoid
遵守所有这些规则的人相比。其他有什么功能monoid
而乐高没有?
c# - 生成所有系数为 0 或 1 的多项式给定度数 n
我试图在“C#”中枚举给定度数的所有可能的多项式。是否有任何算法可以枚举给定度数 n 的所有可能的多项式?也许我不知道如何准确地问这个问题,但这些是例子:
例如:
对于 n=1:
对于 n=2:
对于 n=3:
任何伪代码或算法都会有所帮助。
math - Sagemath 团体的花环产品
任何人都可以帮我在 Sagemath 服用花环产品吗?
我无法找到在线参考资料,据我所知,它似乎没有内置。
python - 群论和 Python
如何编写 Python 代码来检查由 Cayley 表定义的集合 {0,1,..,n−1} 上的操作 ∗ 是否是关联的。
我尝试的代码是:
haskell - 结构上强制执行的自由替代,没有左分配
伟大的免费包中有一个不错的免费替代方案,它将 Functor 提升为左分配替代方案。
也就是说,主张是:
是一个替代同态,其中liftAlt
. 而且,确实,它是一个,但仅适用于左分布的Alternative 实例。
当然,实际上,很少有替代实例实际上是左分配的。大多数实际重要的替代实例(解析器,大多数 Monad f 的 MaybeT f 等)都不是左分布的。这个事实可以通过一个例子来证明,其中runAlt
和liftAlt
不形成一个替代同态:
所以runAlt
对于一些 Alternatives 来说只是一个 Alternative 同态,但不是全部。这是因为结构Alt
标准化了所有动作以分布在左侧。
Alt
很棒,因为从结构上讲,Alt f
是合法的Applicative
并且Alternative
. 没有任何可能的方法来Alt f a
使用不遵循法律的 Applicative 和 Alternative 函数构造类型的值......类型本身的结构使其成为免费的替代品。
就像,对于列表,您不能使用不尊重、、和关联性的<>
和构造列表。mempty
x <> mempty = x
mempty <> x = x
我编写了一个 Free 替代方案,它在结构上不强制执行 Applicative 和 Alternative 定律,但使用 runAlt/liftAlt 产生了一个有效的 Alternative 和 Applicative 同态:
在结构上,Alt f
不是实际的Applicative
,因为:
所以pure f <*> pure x
在pure (f x)
结构上与 不同。不是一个有效的应用程序,马上。
但是,使用给定的runAlt
and liftAlt
:
这里runAlt
确实可以作为一个有效的应用同态与给定的自然变换......
有人可以说我的 newAlt f
是一个有效的 Alternative 和 Applicative,当被 定义的等价关系商时runAlt
,我想。
无论如何,这只是有点不满意。有没有办法编写一个免费的替代方案,它在结构上是一个有效的替代方案和应用程序,而不强制执行左分配?
(特别是,我实际上对遵循左捕获法并在结构上执行它的方法感兴趣。这将是一件单独且有趣的事情,但并非完全必要。)
而且,如果没有任何办法,为什么不呢?