【发布时间】:2010-11-29 16:43:09
【问题描述】:
您有(最多 100 个)不同组 (2-4) 个数字。集合或集合中数字的顺序无关紧要。最高的数字与套数有关,最高可达 30。像:
{1 2 3 4} {1 2 3 5} {1 2 3} {1 2 4 5} {6 2 4} {6 7 8 9} {6 7 9} {7 8 9} {2 4 8 9}
目标是以特定顺序排列这些集合,其中两个连续的集合不包含共同的数字。那是
{1 2 3 4} {2 4 8 9}
不好(因为 2)。和
{1 2 3 4} {6 7 8 9}
很好。
当然,尤其是在给定的示例中,这对于整个集合是不可能的。但是应该尽量减少违反规则的集合的数量。
我假设,一些蛮力+评分算法对于相对大量的集合是不可行的。 您对确定性算法解决此问题有任何其他想法或提示吗?
你认为,洗牌 + 评分算法可以找到合适的解决方案(在一些有限的时间范围内,比如 5 秒,标准计算机)?
【问题讨论】:
标签: algorithm sorting numbers set scoring