Pergunta

Estou montando uma ferramenta para um colega que ajuda a criar uma boa lista de fixação. Eu tenho cerca de 2/3 por meio da ferramenta, recolher vários dados ... e então eu bati uma parede de tijolos. É menos de um problema JavaScript e mais de uma matemática / brainblock processamento.

Vamos dizer que eu tenho 4 equipes, e todos eles necessidade de jogar entre si em casa e fora. Usando esta ferramenta - http://www.fixturelist.com/ - Eu posso ver que a casa e fora dispositivo elétrico com 4 equipes levaria 6 semanas / rounds / whatever. Para a vida de mim, porém, eu não posso trabalhar para fora como que foi programaticamente funcionou.

Alguém pode explicar a lógica para processar isso?

Para informações, gostaria de usar esta ferramenta existente, mas há outros fatores / características que eu preciso para trabalhar, portanto, fazer um trabalho personalizado. Se eu pudesse entender como representar essa lógica!

Foi útil?

Solução

No seu exemplo de 4 equipas, chamá-los a, b, c e d:

  • um tem que jogar b, c, d
  • b tem que jogar c, d (jogo contra um já incluídos em um dos jogos)
  • c tem que jogar d (jogo contra um já incluídos em um dos jogos, contra b já incluído nos jogos de b)

Se eles precisam de jogar em casa e fora, isso é 12 jogos. Você pode jogar no máximo 4/2 = 2 jogos por semana, de modo que é de 6 semanas.

Com equipes n você precisa x jogos, onde:

x = ((n-1 + n-2 + n-3 ...) * 2)

Isso leva semanas y, onde:

y = x/(n/2) = 2x/n

Isso pode ser simplificado com uma série aritméticas com bastante facilidade, ou calculado com um loop for, se quiser.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top