我有一个脚本可以读取坐标,创建所有可能的对并计算点之间的距离。如果距离在某些给定值之间,则将它们添加到numpy数组中。下面是长度为3.-3.5单位之间12点之间的对的示例。
[[ 0. 3. 3.328008]
[ 0. 8. 3.128008]
[ 2. 5. 3.028007]
[ 2. 6. 3.028008]
[ 3. 10. 3.428008]
[ 4. 5. 3.128007]
[ 4. 9. 3.628008]
[ 6. 9. 3.128008]
[ 8. 11. 3.028007]
[ 10. 11. 3.328007]]
我想创建所有点对,创建六对,每个点只能在一个组合中配对一次,并且距离的总和尽可能大。
这样做的唯一想法是可怕的,包括嵌套for循环的低效使用和列表的创建。我想为更大的一组点做这件事而且这个问题不能很好地扩展,所以我希望尽可能高效。实现这个目标的方法是什么?