Здравствуйте, гость Правила · Помощь

»  Лига. Шахматные поддавки, весна 2007 Подписаться | Сообщить другу | Версия для печати
      » 1/03/2007, 21:24,  GlazAlmaz 
пообещали, что завтра утром будет работать вторая партия...

кстати, как вам новый вариант турнирной сетки?
- теперь сразу видно начальные присужденные партии
- условная высшая лига выделена желтым цветом
- порядок игроков в сетке совпадает со списком регистрации весь турнир (это можно поменять на старый вариант, если не понравится), чтобы увидеть список по порядку занятых мест, нужно войти в турнирную таблицу (не в сетку)
      » 1/03/2007, 21:26,  GlazAlmaz 
планируется еще показ процента сыгранных игр (по которому идут отсечки), но нужно составить грамотную формулу по его определению... входящие данные - кол-во игроков и номер игрока в момент регистрации... может кто поможет?
      » 2/03/2007, 11:49,  GlazAlmaz 
еще большая просьба - не садитесь играть лигу за первые 5 столов клеточного зала (которые выделены под ДС), по каким-то причинам после лиги никто за такой стол сесть не может до следующего дня... ))
      » 5/03/2007, 08:44,  GlazAlmaz 
dimv дисквалифицирован из лиги за использование проги
      » 6/03/2007, 13:34,  zenker 
GlazAlmaz ( "1/".$m["мар"]."/2007," 21:24)
...
кстати, как вам новый вариант турнирной сетки?
- теперь сразу видно начальные присужденные партии
- условная высшая лига выделена желтым цветом
- порядок игроков в сетке совпадает со списком регистрации весь турнир (это можно поменять на старый вариант, если не понравится), чтобы увидеть список по порядку занятых мест, нужно войти в турнирную таблицу (не в сетку)

Отлично! Совсем другое восприятие!
Матрицу сортировать не надо, так удобнее.
Сразу вспоминается большие бумажные таблицы очных турниров где-нибудь на стене, куда вписывались результы. И атмосфера таких соревнований…

GlazAlmaz ( "1/".$m["мар"]."/2007," 21:26)
планируется еще показ процента сыгранных игр (по которому идут отсечки), но нужно составить грамотную формулу по его определению... входящие данные - кол-во игроков и номер игрока в момент регистрации... может кто поможет?

Не вполне ясно, что конкретно должно быть на выходе, но, прикинув задачу, понял, что здесь не самым простым делом является определение числа партий, которое необходимо сыграть участнику, исходя из его номера и общего числа участников.

Поскольку число партий зависит от числа встреч с другими участниками и кратно ему (в лиге кратность равна 2), то будем считать:

M = 31, общее число участников (размер матрицы)
W = 10, размер плавающего окна вдоль игровой диагонали без выколотых клеток
n = [1;M], номер участника в таблице при регистрации

X = f(n;M;W), число встреч с каждым участником
k = 2, число партий во встрече с каждым участником
P = k * X, общее число партий участника

Наша задача – найти формулу для вычисления X.

В первом приближении получилось две возможные формулы, но каждая из них использует такие функции как максимум МАКС (arg1;arg2…) или минимум МИН (arg1;arg2…), но работает, как из пушки, даже если M <= W.

1. «Оконное»

X = (W - 1) + МИН(n - 1; W - 1; M - n; M - W)

2. «Матричное»

X = (M - 1) – МАКС(0; M – W – n + 1) – МАКС(0; n - W)

Есть ли другие подходы? Пока не знаю.
Может кто-нибудь изобретет более простые и красивые формулы?
      » 6/03/2007, 16:27,  ProFanat 
Х=n+W-2, при n<=W
X=2*W-2, при W<n<=M-W
X=M-n+W-2, при M-W<n
так неплохо :)
      » 6/03/2007, 16:35,  ProFanat 
можно конечно интерполяционный многочлен написать...
      » 8/03/2007, 13:40,  zenker 
ProFanat ( "6/".$m["мар"]."/2007," 16:27)
Х=n+W-2, при n<=W
X=2*W-2, при W<n<=M-W
X=M-n+W-2, при M-W<n
так неплохо : )

Представленная выше формула (назовём её третьей) эквивалентна, по сути, формуле первой. С той лишь разницей, что функция минимума развернута в явный набор условий, который скрыт в самой функции. Плюс в третьей формуле допущена ошибка – на стыке второго и третьего условия происходит сбой.

Примеры:
n = 22 > 21 = 31-10 = M-W: X=31-22+10-2=17. Правильно: 18.
n = 31 > 21 = 31-10 = M-W: X=31-31+10-2=8. Правильно: 9.

Эквивалентность и причина ошибки ясна из следующего преобразования третьей формулы.

1. X = n + W – 2 = (W - 1) + (n - 1);
2. X = 2 * W – 2 = (W - 1) + (W – 1);
3. X = M – n + W – 2 = (W – 1) + (M – n1).

Сравним полученный результат с формулой первой.

X = (W - 1) + МИН(n - 1; W - 1; M - n; M - W)

Очевидно, что на выходе мы имеем постоянное слагаемое (W-1) и один из аргументов функции МИН( ) первой формулы. Видна и лишняя единица в третьем уравнении, также как её не хватает условиях второго и третьего неравенств.

В чем смысл четвертого аргумента? Для придания общности формуле и возможности её работы даже в случае, если M <= 2*(W-1). Если заранее известно, что это иначе, то четвертый аргумент можно исключить из формулы. Кстати, третья формула этого не учитывает.
Пример: M=17, W=10.
n = 9: X = 2 * W – 2 = 2 * 10 – 2 = 18. Правильно: 16.


Таким образом, первая формула более универсальна и проста.

По сути, она работает для любой предлагавшейся здесь схемы лиги:
- для усеченного варианта лиги Lx (W > M),
- для единой лиги по формуле L1 (W=M),
- для раздельных двух лиг по формуле L2 (M1=W, W2=M-M1),
- для нескольких лиг по формуле LN (M1=W, M2=W … Wn=M – M1 – M2…),
- для лиги по формуле LZ (W=const < M).

Использование же набора многочисленных условий носит трудоёмкий характер и чреват ошибками. Правда, неясно, какие возможности имеют средства реализации, поскольку в постановке задачи не был очерчен круг используемых операций. Если есть встроенная функция МИН( ), то задача резко упрощается. Хотя и трансформировать эту функцию в набор условий просто.

Поскольку для конкретного турнира переменные M и W являются константами, то для любого турнира формулу можно упростить. Например, для текущего турнира она может быть такой:

X = 9 + МИН(n-1; 9; M-n)


Посмотрим, как первая формула в общем виде работает для трех частных случаев.

user posted image
T-1

user posted image
D-1

user posted image
D-2

user posted image
D-3
      » 14/03/2007, 13:37,  GlazAlmaz 
http://www.gambler.ru/tours/tours.php?tourid=42703
в таблице можно увидеть % сыгранных игр
      » 14/03/2007, 13:41,  zenker 
GlazAlmaz ("14/".$m["мар"]."/2007," 13:37)
http://www.gambler.ru/tours/tours.php?tourid=42703
в таблице можно увидеть % сыгранных игр

По какой формуле? )
« Предыдущая тема | Перечень тем | Следующая тема »
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей: