@kirill9656

Как построить алгоритм жеребьевки?

В MS Access создана БД, в которой хранятся результаты проведенных матчей. Матч проводится путем объявления пар и записи результата.
В запросе выводятся ВСЕ возможные пары. Как реализовать с помощью Delphi и/или SQL запроса жеребьевку?
Разбиение по парам, а не перебор всех возможных пар
Например, 16 команд = 8 пар, 8 команд = 4 пары и тд...
SELECT Команда.Название AS Название_К1, Команда_1.Название AS Название_К2
FROM Команда, Команда AS Команда_1
WHERE Команда_1.Название<[Команда]![Название]
ORDER BY RND();
5a0ed7791147a972646657.png5a0ed782cfba1054475207.png
  • Вопрос задан
  • 960 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Берёте полный список команд, тасуете его, выводите парами (i, i+1) из списка.
Алгоритм тасования массива [1..n]:
для всех i от n  до 2 выполнить
  j ← случайное число 1 ≤ j ≤ i
  обменять местами a[j] и a[i]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы