准确的说9次是将所有排序里必要的大小关系囊括在内的最少轮次解
一轮确定1>2>3>4,8轮确定4>其他。
后面是最少只要9次的部分代码(后面懒的写),如有写的不好的地方欢迎留言指导
主要思路是用每次前四的进入下一轮,设置一个Index选取第一轮排第四的第四马和其他没比的七匹马比,将第一次前三加入win数组。
分情况:
1.Index排前四
将排Index前面的马加入win数组,index继续参与比赛
2.Index排后四
将该轮第四马替换Index值,将排Index前面的马加入win数组,用替换后的Index参与比赛。
第一次大比结束共需9轮
在Index为64马中排第四的马即可得出最快轮次为9
后面没写的代码可用win数组查阅horse数组中的马参与比赛,进入第二轮大比
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
double[] horse = { };
int[] win = { };
int Index = -1;
int quick = 0;
int count = 0;
int turn = 1;
Random speed = new Random(100);
for (int i = 0; i < 64; i++)
{
double t = speed.NextDouble();
for (int j = 0; j <=