假设我有一个列表decimal*decimal
let tup = [(1M, 2M); (2M, 3M); (3M, 3M); (4M, 5M); (5M, 6M); (7M, 6M); (8M, 9M); (10M, 9M)]
我需要一个函数,如果可以连接的话,可以将所有值分组在一起,例如,
map[(100, [1M; 2M; 3M]); (101, [4M; 5M; 6M; 7M]); (102, [8M; 9M; 10M])]
我不能只是做一个List.groupBy
因为这错过了可能通过另一个十进制值“向下”连接的任何其他内容。这int
地图中的值是任意的。我希望能够“播种”起始值,然后将每个值逐渐增加一些值。
能做到这一点的函数是什么样的?
我说的“连接”是指数字代表节点,元组代表无向图中的边,对吗?据我所知,标准库中没有函数可以做到这一点。您可以搜索一些执行基本图形操作的库。您要执行的操作是除以连接的组件 https://en.wikipedia.org/wiki/Connected_component_(graph_theory).
您也可以尝试从头开始实现该功能。
这是一些不错的尝试 http://www.fssnip.net/av#Problem-88-Connected-components-alternative-solution.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)