【发布时间】:2016-09-21 14:59:40
【问题描述】:
我正在尝试在 Clojure 中实现布偶物理。我的模型有一个多维坐标序列 x 和一个距离约束矩阵 M,这是松弛算法的一部分所需要的。
一般的想法是,如果矩阵条目 m_ij 不为零,我必须以这样的方式修改坐标 x_i 和 x_j他们的距离等于M_ij。假设每个 x_n 都是 2D/3D 坐标,我知道如何正确计算。
现在,由于 M 的每个条目都会影响两个坐标,我想不出一种方法来使用map 或reduce 来正确迭代坐标。我也许可以将两个 loop, recur 调用相互放在一起以模拟命令,但我希望有更好的方法(尤其是因为它会导致看起来非常混乱的代码)。
您知道迭代二维矩阵并在此过程中修改多个向量条目的函数式方法吗?
【问题讨论】:
-
首先想到的是映射成对的相邻点,而不是点值,然后重新组合这些结果。
-
你考虑过
for吗?(for [x (range 10) y (range 5)] ...)
标签: algorithm clojure functional-programming