首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Prolog数组进行矩阵乘法

使用Prolog数组进行矩阵乘法
EN

Stack Overflow用户
提问于 2021-06-05 19:12:48
回答 1查看 77关注 0票数 1

这可能并不明显,但Prolog也提供了开箱即用的数组。Prolog复合函数有一个函数式和许多参数。这意味着我们可以表示一个数组,例如:

代码语言:javascript
复制
[[1,2],[3,4]]

将Prolog列表替换为以下Prolog化合物:

代码语言:javascript
复制
matrice(vector(1,2), vector(3,4))

优点是从整数索引访问元素的速度更快。这种表示法可以用来实现矩阵乘法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-07 16:41:50

还有另一种方法,如在R(统计环境)中实现的。数组的维数和值是分开保存的。所以你的正方形也可以表示为:

代码语言:javascript
复制
array(dims(2, 2), v(1,2,3,4))

这种方法有一些(值得怀疑的)优点和缺点。如果你感兴趣,可以从这里开始阅读:https://stat.ethz.ch/R-manual/R-devel/library/base/html/dim.html

对于你的问题,是的,无论你决定如何表示矩阵,你都可以实现矩阵乘法。看看这两种方法(数组的数组与一个数组并从维度计算索引)在效率方面的比较将是很有趣的。

你想用什么算法做矩阵乘法?它是这里描述的任何一种吗:https://en.wikipedia.org/wiki/Matrix_multiplication_algorithm

编辑:是否允许客户端代码能够提供乘积和求和操作?是否允许值的专门化?例如,如果您希望使用矩阵乘法来查找图的传递闭包,则可以将布尔方阵表示为一个无界整数。这将使矩阵本身至少相当小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67848952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档