这可能是一个数学问题,但我需要以编程方式进行,这就是我所挣扎的。所以这就是问题所在:
- 我有运动类别(每个都有任意数量的竞争者),他们的开始时间(他们可能在同一时间或任意时间不同时间开始)。 即。 A类从10:00开始,B在10:00开始,C在10:30开始等。
- 我需要随机重新排序每个类别的竞争对手,然后从类别开始的5分钟间隔内为每个参赛者分配这个新订单的开始时间。 即。竞争对手1在A类10:00,竞争对手2在A类10:05,1竞争者1在B类10:00,竞争者1在C类10:30等
- 每个参赛者都有一个国家/地区,并且有一条规则,即同一个国家/地区不得有两个竞争对手(不论其类别)。如果发生这种情况,一个人必须将其类别中的地点与其他人切换,以免发生。
我正在努力创建一个算法,如果它存在就会给我解决方案,并且在没有解决方案时会退出。到目前为止,我设法随机重新排序类别,并给他们开始时间。但是当将规则应用于此结果并以各种方式重新排序元素时,我要么进入无限循环,要么最终导致结果中的错误(来自同一国家/地区的两个人同时开始)。