我正在创建一个小软件,遇到了一个概念问题。我将尝试用一个小例子来解释这种情况:
- 我有一个包含多个点的坐标系。
- 每个点都由它在 x 和 y 轴上的位置描述(到目前为止正常),可以是蓝色或红色。
- 现在我想创建事件。
- 每个事件包含一个蓝色点和一个红色点,并且有几个关于如何选择它们的条件。
- 例如:蓝色(x)和红色(x)之和(=蓝色和红色点的x值)必须是偶数。
- 同时,可能存在 y 值的校验和不能是素数的条件。
- 每个点都可以是多个事件的一部分。
- 在我的情况下,每个点都有在创建事件时“使用”的特定资源,并且只要它具有所需数量的资源,该点就可以成为新事件的一部分。
我需要的是创建尽可能多的事件(即直到蓝色或红色组的资源耗尽)。假设我有 2 个红点和 2 个蓝点。Yes 和 No 表示它们是否满足给定条件:
B1 R1 是 B1 R2 是 B2 R1 是 B2 R2 没有
如果我匹配 B1 和 R1(每个列表的顶部),我只会得到一个事件,因为 B2 和 R2 不匹配。另一方面,如果我将 B1 与 R2 匹配,将 B2 与 R1 匹配,我会收到 2 个事件。这就是我需要的。
此外,我的事件的平均距离(从蓝点到红点)应该尽可能低。
我考虑过通过随机选择符合条件的蓝点和红点来创建事件,多次执行整个过程并保持事件数量最多和平均距离最短的结果。但我不太喜欢它,因为我无法提供任何关于结果质量的声明。结果也不是确定性的。
任何帮助都感激不尽。