Задача для программистов.
1.
CROWS (21.07.2011 / 11:45)
Добрый день. Нужна помощь в решении задачи:
Есть 100 дней, есть 20 футбольных клубов. Нужно составить календарь игр для каждого клуба на эти 100 дней. при этом, нужно учесть, что:
1) Игры происходят в два захода (дома и на выезде);
2) Каждый клуб должен играть матч через 3 дня.
2.
ZaRiN (21.07.2011 / 11:53)
берешь матчи между 1 и 2, 2 и 3, 3 и 4, 4 и 5...
потом их перемешиваешь как тебе надо
вроде должно работать
3.
CROWS (21.07.2011 / 12:00)
mr.Z (21 Июля 2011 / 11:53)
берешь матчи между 1 и 2, 2 и 3, 3 и 4, 4 и 5...
потом их перемешиваешь как тебе надо
вроде должно работать
Как ты составишь циклы для "берешь матчи между 1 и 2, 2 и 3, 3 и 4, 4 и 5..."?
Плюс же есть два пункта, которые я написал в первом посте.
4.
ZaRiN (21.07.2011 / 12:03)
3, цикл можно составить, было бы желание
когда у тебя будет список всех матчей между командами - приводишь их к своему условию и выставляешь нужные матчи
Добавлено через 03:46 сек.
Дай названия своих команд в личку, может помогу
5.
CROWS (21.07.2011 / 12:10)
mr.Z (21 Июля 2011 / 12:03)
3, цикл можно составить, было бы желание
когда у тебя будет список всех матчей между командами - приводишь их к своему условию и выставляешь нужные матчи
Добавлено через 03:46 сек.
Дай названия своих команд в личку, может помогу
"цикл можно составить, было бы желание" - ну ответ пустой и ничего мне особо не дает
Такие фразы может написать любой "типа программист".
Та название могут быть абсолютно любыми. Как вариант: id1, id2, ..., id20.
Добавлено через 01:32 сек.
Вы просто попробуйте составить сам календарь на листочке бумаги и подогнать под него задачи из первого поста, а также написать циклы
На первый взгляд всё просто
6.
ZaRiN (21.07.2011 / 12:13)
5.
-V_o_R_o_N_a-, в 100 дней 20 команд не вложится, им нужно 20*2-2*3=108 дней
7.
CROWS (21.07.2011 / 12:15)
6.
mr.Z, да, чуть не расчитал интервал. Ну можно взять либо 120 дней, либо одна игра в два дня. Это не так важно.
8.
ZaRiN (21.07.2011 / 12:23)
7.
-V_o_R_o_N_a-, сейчас если хватит времени, то что-то накалякаю
Добавлено через 06:01 сек.
http://thiswap.com/work/football/index.php вот пока что вышло все матчи для каждой команды собрать, но я не успею полностью доделать, скоро уходить надо по делам, если что вечером допишу
9.
ZaRiN (21.07.2011 / 20:34)
Проверил на 6 командах, все гуд работает, на 20ти проверь сам уже.
Сделал эту байду без ответных матчей, думаю сам справишься уже.
<?php
// массив команд
$team = array('1'=>'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
'11',
'12',
'13',
'14',
'15',
'16',
'17',
'18',
'19',
'20');
$all_team = count($team);
$k = $all_team/2;
// 1 тур
echo '1 тур<br>';
for($i=1;$i<=$k;$i++)
{
echo $team[$i].' - '.$team[($all_team-$i+1)].'<br>';
}
// Следующие туры
for($i=2;$i<$all_team;$i++)
{
echo $i.' тур<br>';
$team2 = $team[2];
for($y=2;$y<$all_team;$y++)
{
$team[$y] = $team[$y+1];
}
$team[$all_team] = $team2;
for($j=1;$j<=$k;$j++)
{
echo $team[$j].' - '.$team[($all_team-$j+1)].'<br>';
}
}
?>
возможно много ***кода, но делал как было быстрее)
10.
CROWS (21.07.2011 / 20:40)
9.
mr.Z, спасибо за помощь. +1.
11.
ZaRiN (21.07.2011 / 20:56)
10.
-V_o_R_o_N_a-, если есть аккаунт на фри-лансе, то очень буду благодарен за отзыв
http://dnbinua.free-lance.ru/
URL:
https://visavi.net/topics/23437