问题标签 [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.
math - 求解二阶联立方程
以下两个方程的解是什么?
A 1紫外线 + B 1 u + C 1 v + D 1 = 0
A 2紫外线 + B 2 u + C 2 v + D 2 = 0
u, v in [0, 1]
该解决方案需要非常快速,因为它需要针对每个像素进行求解,希望是直接解决方案而不是迭代解决方案。
这基本上是试图找到边界是直线的浣熊补丁的倒数。
boolean - 在布尔代数中乘以否定项?
我现在只是在学习布尔代数。我读到对于 XOR 我们可以重新排列表达式
(甲+乙)。¬(A + B)
= A.¬A + A.¬B + B.¬A + B.¬B
= A.¬B + B.¬A
我可以理解这一点,但我不确定我将如何继续乘以一个表达式
- (甲+乙)。(¬A + ¬B)。
如果我只是尝试并天真地乘以所有的项,这些项将使我得到与 XOR 相同的结果,但真值表是不同的。乘以否定项的规则是什么?
math - 如何在有限域中实现乘法?
如果 F := GF(p^n) 是具有 p^n 个元素的有限域,其中 p 是质数和 na 自然数,是否有任何有效的算法来计算 F 中两个元素的乘积?
到目前为止,这是我的想法:
我知道 F 的标准构造是在 GF(p) 中取 n 次不可约多项式 f,然后将 F 的元素视为商 GF(p)[X]/(f) 中的多项式,我有一个感觉这可能已经是正确的方法,因为多项式乘法和加法应该很容易实现,但我不知何故看不到这实际上是如何完成的。例如,如何选择合适的 f,以及如何获得任意多项式的等价类?
geometry - 如何为射线/球体相交建立二次方程?
我正在研究光线追踪器的数学,但我并没有遵循我读过的关于该主题的几乎每篇文章中的过渡。这就是我所拥有的:
球体公式:
(X - Cx)^2 + (Y - Cy)^2 + (Z - Cz)^2 - R^2 = 0
其中R为半径,C为圆心,X、Y、Z为球面内的所有点。
线的公式:
X + DxT,Y + DyT,Z + DzT
其中 D 是直线的归一化方向向量,X、Y、Z 是直线上的所有点,T 是直线上某个点的参数。
通过将直线的分量代入球面方程,我们得到:
(X + DxT - Cx)^2 + (Y + DyT - Cy)^2 + (Z + DzT - Cz)^2 - R^2 = 0
我一直追随到那一点(至少我认为我这样做),但是我读过的每一个教程都会从那个跳到一个二次方程而没有解释它(这是从其中一个站点复制的,所以术语是和我的例子有点不同):
A = Xd^2 + Yd^2 + Zd^2
B = 2 * (Xd * (X0 - Xc) + Yd * (Y0 - Yc) + Zd * (Z0 - Zc))
C = (X0 - Xc)^2 + (Y0 - Yc)^2 + (Z0 - Zc)^2 - Sr^2
我知道如何使用二次公式求解 T,但我不明白他们如何从上述公式中得到二次方程。我假设这只是我早已忘记的一些常见数学知识,但谷歌搜索“如何建立二次方程”也没有真正产生任何结果。
在继续之前,我真的很想了解如何到达这一步,因为我不喜欢编写我没有完全掌握的代码。
math - 计算准确性和显示有意义结果的最佳方法
我目前的方法允许我确定最准确的数组,但我无法找到显示信息结果的好方法。
这是我的情况……</p>
我将X数量的整数数组与静态整数数组进行比较。对于数组中的每个位置,我通过与静态数组中的等效位置进行比较来计算位置的精度结果。在确定阵列的最后一个位置精度结果后,我存储该阵列的所有精度结果的总和,以供以后比较。
一旦保存了每个阵列的所有准确度结果的总和,它们就会相互比较。总和最小的数组被认为是最准确的。
伪代码……</p>
精度是通过将 SingleArray 值与 StaticArray 的差值的绝对值除以某个常数来确定的。如果准确度结果 < 1,则认为结果准确。如果result > 1,那么它是不准确的,results = 0是完美的。
这是一个场景......为简单起见,让我们使用两个数组
S = [ 56, 53, 50, 64 ]
A = [ 56, 54, 52, 64 ]
B = [ 54, 52, 51, 63 ]
循环遍历从A开始的每个数组。
比较 A( 56 ) 和 S( 56 ) 的位置 [1] 的准确性。确定精度(我将使用两个作为常数)|56-56|= 0 , 0 / 2 = 0 ; 完美的准确性
继续比较每个位置并计算精度 |53-54|= 1 , 1 / 2 = 0.5 ; 准确,因为 <= 1
|50-52|= 2 , 2 / 2 = 1 ; 准确的
|64-64| = 0 ; 完美的
现在计算数组 A 0 + 0.5 + 1 + 0 = 1.5的所有准确结果的总和
如果我们对数组 B 执行相同的操作,最终结果将是 1 + 0.5 + 0.5 + 0.5 = 2.5
现在,如果我们将数组 A 与 B 进行比较,我们可以看到数组A 比 B 更准确,因为总和更低。
问题是 1.5 和 2.5 在尝试显示 A 比 B 更准确时意义不大。
显示这些结果的最佳方法是什么?我考虑过显示百分比……比如 A 比 B 好 17%。或者 BestArray 比平均值好 6%。
我将如何计算这些结果?
您在我计算准确性的方式中看到任何逻辑问题或知道更好的方法吗?
感谢您提供的任何见解!
.net - 如何检查 .NET 中值类型之间的“安全”转换?
回到基础...
对于引用类型,可以这样做:
对于值类型,我的理解是我们有隐式转换(没有数据丢失)、显式转换(如果有数据丢失的风险则需要)、Convert
类(我认为是“转换包装器”)以及特定于类型的转换(例如double x = Double.Parse("2");
),但我没有找到与as
上面的运算符类似的任何东西。
所以,我的问题是:该框架是否提供了一些方法/操作员/技术来执行以下操作:
如果没有,那里的任何人都可以提出一种可靠的方法来构建一种这样的CanConvert
方法吗?
非常感谢!
编辑(1):用户案例/问题如下:给定代码的消费者(我的另一个自我,但这无关紧要)传递的东西,(1)检查某物是否是一个数字(很容易)和(2)将某些内容放在适合的“最小”数字类型中,而不会导致数据丢失。
一些背景:我正在尝试做的事情的本质是数学而不是技术:我正在尝试查看是否/如何将现有的数字类型适合某种形式的代数层次结构 Monoid=>Group=> Ring=>Field(或其简化版本)。在处理这个问题时,不太确定如何,“一件事导致另一件事”,我发现自己不得不处理类型转换......
c++ - 帮助重新排列/求解方程
我有以下 C 公式
我需要重新排列方程以返回 _capacity 而不是存储桶(除了 _capacity 之外,我还有所有其他变量)。例如
正如你所看到的,这是一个相当简单的方程,我只需要左边的 x。但我的代数很生疏,所以任何帮助表示赞赏。
python - 如何有效地从稀疏矩阵中删除一列?
如果我使用 sparse.lil_matrix 格式,如何轻松有效地从矩阵中删除一列?
math - 点到多面体或多边形的距离
我有一个多面体表面,我想找到它与给定点P之间的最小距离。由于多面体由 3d 空间中的许多多边形定义,因此我想到的一种方法是比较与每个多边形的距离并选择最短距离。我仍然不确定。
sql - 帮助将 SQL 查询转换为关系代数
我在将一些查询转换为关系代数时遇到了一些困难。我有一本关于数据库设计的好书,这是关于关系代数的一章,但我似乎仍然无法创建正确的一章:
我最难解决的问题是:
和
我知道这个符号可能有点难以粘贴到 HTML 论坛中,但也许只是使用一些通用名称或希腊名称。
提前致谢