有36辆赛车,6个跑道,没有计时工具,要想得到最快的前三名,最多要在跑道上进行几次赛车比赛。


其实这个问题将其模型等价成一个6x6方阵(或者二维数组)排序问题。

无论怎么算,首先肯定要先分六组,自行比赛分前后顺序,进行横向排序。进行6次

简单好玩的算法(二)

然后是对每组的第一进行比赛,得到纵向排序。(这里用来区分组别,分别用不同的编码,速度1>a>A>甲>Ⅰ>天)进行1次

简单好玩的算法(二)

紧接着一定注意看:第一组的第四名和后面三组已经无法进去前三名。即这就变成了3x3的矩阵。进行0次

简单好玩的算法(二)

继续分析(因为还能简化):第二组的c前面有b,a还有1都比他速度都快,所以他也进不了前三名。同理,第三组B和C前面有A,a,1都比他快,也进不了前三名。这样之后再看矩阵

简单好玩的算法(二)

这样之后就剩下六个数值了,再进行最后一次比赛就可以知道前三名了。(当然如果再优化,第一名可以不用参加)进行1次

最后把次数相加就是6+1+1 = 8次


相关文章:

  • 2021-08-06
  • 2021-04-11
  • 2021-06-08
  • 2021-05-26
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
猜你喜欢
  • 2021-08-01
  • 2021-05-11
  • 2022-12-23
  • 2021-04-16
  • 2022-12-23
  • 2021-12-23
  • 2021-10-31
相关资源
相似解决方案