排列和组合 - MetaTrader 5 库
这种情况并不经常发生,但每隔一段时间就需要迭代一组对象的所有组合或排列。或者更具体地说,给定一组 N 个对象,您希望一次考虑其中 k 个(对于每个组合或排列)。
实际上,组合和排列算法可以用作解决某些问题的强力方法,通过尝试每种可能的组合或排列,直到找到最佳解决方案。
循环 k 排列算法可在现实世界中用于解决部分旅行商问题 (TSP) 或其他类似问题,例如寻找外汇中三角套利的候选货币。
以下是针对每个问题及更多问题的解决方案。以下通用算法允许访问长度为 N 的序列的每个组合或排列,一次获取 k 个项目。
我们已尽一切努力使这个 API 库尽可能快。审查了许多用于组合/排列的算法和库,并执行了大量基准测试、代码分析和微优化。
该库中的堆算法以更有效的方式重新实现,提供比其标准实现更快的性能。
附件下载
📎 permut_library.mqh (25.64 KB)
📎 combinations_demo.mq5 (6.12 KB)
📎 currencyarbitrage_demo.mq5 (24.13 KB)
Source: MQL5 #25724
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
