Найдите все возможные исходы всех матчей футбольного турнира - PullRequest
0 голосов
/ 18 июня 2020

Я работаю над постановкой задачи, в которой мне нужно вернуть список всех возможных комбинаций исходов в футбольных турнирах.

Предположим, что результат матча может быть 1 - победила первая команда, 0 - победила вторая команда

public ArrayList<Result> calculate(List<Matches> list){

    if(list.size == 0){
    return;
  } else {
    Match M = list.get(0);
    list.remove(0); 
    calculate(list);

  }
 }

Я пытаюсь использовать рекурсивный подход.

Результатом должно быть список всех возможных результатов всех совпадений. Это означает, что если всего предстоит сыграть 4 матча, тогда суммируйте все возможные комбинации результатов в этих четырех совпадениях

1 Ответ

0 голосов
/ 18 июня 2020

Я не уверен в вашем вопросе, но если вы пытаетесь вернуть список с использованием рекурсивного подхода, общая идея такова:

public ArrayList<Result> calculate(List<Matches> list){

  if(list.size == 0){
    return new ArrayList<Result>();
  } else {
    Match m1 = list.get(0);
    list.remove(0); // If you want to include a team against itself, move this to after the for loop
    ArrayList<Result> res = new ArrayList<Result>();
    for(Match m2 : list){
      //I'm not sure how you're comparing matches, but just as an example:
      res.add(m1.compare(m2));
    }
    return res.addAll(calculate(list));
  }
}

Здесь мы берем лучшее совпадение из список и сравнивая его со всеми другими совпадениями в списке перед рекурсивным вызовом остатка. Я действительно не уверен, в чем именно заключается ваш вопрос, поскольку он не очень четко сформулирован, но я надеюсь, что это хотя бы поможет.

...