<?php
$total = 7;
$skip = 4;
//создаем массив для хранения участников
//заполняем массив участниками жеребьевки
for ($i = 0; $i < $total; $i++) {
$humans[$i] = $i + 1;
}
//узнаем количество участников;
$length = count($humans);
//узнаем сколько участников не участвует в текущем круге
$humansEnd = count($humans) % $skip;
//узнаем с какой позиции нужно начать следующий круг
$newStart = count($humans) - $humansEnd - 1;
//на какой слог по счету выкидываем участника
$count = $skip - 1;
//пока количество участнико больше или равно количеству слогов
for ($i = $length; $i >= $skip; $i--) {
// если позиция участника совпадает с позицией для нового круга
if ($count == $newStart) {
// переносим всех оставшихся участник в начало массива
while ($humansEnd > 0) {
$humansEnd--;
}
// обновляем количество количество не участвующих в текущем круге
$humansEnd = count($humans) % $skip;
// обновляем позицию для начала нового круга
$newStart = count($humans) - $humansEnd - 1;
// задаем значение по умолчанию для слога
$count = -1;
}
// обновляем счетчик
$count += $skip;
}
echo "Выигрышные места: ";
foreach ($humans as $value) {
echo "{$value} ";
}
PD9waHAKCiR0b3RhbCA9IDc7CiRza2lwID0gNDsKCi8v0YHQvtC30LTQsNC10Lwg0LzQsNGB0YHQuNCyINC00LvRjyDRhdGA0LDQvdC10L3QuNGPINGD0YfQsNGB0YLQvdC40LrQvtCyCiRodW1hbnMgPSBhcnJheSgpOwoKLy/Qt9Cw0L/QvtC70L3Rj9C10Lwg0LzQsNGB0YHQuNCyINGD0YfQsNGB0YLQvdC40LrQsNC80Lgg0LbQtdGA0LXQsdGM0LXQstC60LgKZm9yICgkaSA9IDA7ICRpIDwgJHRvdGFsOyAkaSsrKSB7CiAgICAkaHVtYW5zWyRpXSA9ICRpICsgMTsKfQoKLy/Rg9C30L3QsNC10Lwg0LrQvtC70LjRh9C10YHRgtCy0L4g0YPRh9Cw0YHRgtC90LjQutC+0LI7CiRsZW5ndGggPSBjb3VudCgkaHVtYW5zKTsKCi8v0YPQt9C90LDQtdC8INGB0LrQvtC70YzQutC+INGD0YfQsNGB0YLQvdC40LrQvtCyINC90LUg0YPRh9Cw0YHRgtCy0YPQtdGCINCyINGC0LXQutGD0YnQtdC8INC60YDRg9Cz0LUKJGh1bWFuc0VuZCA9IGNvdW50KCRodW1hbnMpICUgJHNraXA7CgovL9GD0LfQvdCw0LXQvCDRgSDQutCw0LrQvtC5INC/0L7Qt9C40YbQuNC4INC90YPQttC90L4g0L3QsNGH0LDRgtGMINGB0LvQtdC00YPRjtGJ0LjQuSDQutGA0YPQswokbmV3U3RhcnQgPSBjb3VudCgkaHVtYW5zKSAtICRodW1hbnNFbmQgLSAxOwoKLy/QvdCwINC60LDQutC+0Lkg0YHQu9C+0LMg0L/QviDRgdGH0LXRgtGDINCy0YvQutC40LTRi9Cy0LDQtdC8INGD0YfQsNGB0YLQvdC40LrQsAokY291bnQgPSAkc2tpcCAtIDE7CgovL9C/0L7QutCwINC60L7Qu9C40YfQtdGB0YLQstC+INGD0YfQsNGB0YLQvdC40LrQviDQsdC+0LvRjNGI0LUg0LjQu9C4INGA0LDQstC90L4g0LrQvtC70LjRh9C10YHRgtCy0YMg0YHQu9C+0LPQvtCyCmZvciAoJGkgPSAkbGVuZ3RoOyAkaSA+PSAkc2tpcDsgJGktLSkgewogICAgdW5zZXQoJGh1bWFuc1skY291bnRdKTsKCi8vICAgINC10YHQu9C4INC/0L7Qt9C40YbQuNGPINGD0YfQsNGB0YLQvdC40LrQsCDRgdC+0LLQv9Cw0LTQsNC10YIg0YEg0L/QvtC30LjRhtC40LXQuSDQtNC70Y8g0L3QvtCy0L7Qs9C+INC60YDRg9Cz0LAKICAgIGlmICgkY291bnQgPT0gJG5ld1N0YXJ0KSB7Ci8vICAgICAgICDQv9C10YDQtdC90L7RgdC40Lwg0LLRgdC10YUg0L7RgdGC0LDQstGI0LjRhdGB0Y8g0YPRh9Cw0YHRgtC90LjQuiDQsiDQvdCw0YfQsNC70L4g0LzQsNGB0YHQuNCy0LAKICAgICAgICB3aGlsZSAoJGh1bWFuc0VuZCA+IDApIHsKICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgkaHVtYW5zLCBhcnJheV9wb3AoJGh1bWFucykpOwogICAgICAgICAgICAkaHVtYW5zRW5kLS07CiAgICAgICAgfQoKLy8gICAgICAgINC+0LHQvdC+0LLQu9GP0LXQvCDQutC+0LvQuNGH0LXRgdGC0LLQviDQutC+0LvQuNGH0LXRgdGC0LLQviDQvdC1INGD0YfQsNGB0YLQstGD0Y7RidC40YUg0LIg0YLQtdC60YPRidC10Lwg0LrRgNGD0LPQtQogICAgICAgICRodW1hbnNFbmQgPSBjb3VudCgkaHVtYW5zKSAlICRza2lwOwoKLy8gICAgICAgINC+0LHQvdC+0LLQu9GP0LXQvCDQv9C+0LfQuNGG0LjRjiDQtNC70Y8g0L3QsNGH0LDQu9CwINC90L7QstC+0LPQviDQutGA0YPQs9CwCiAgICAgICAgJG5ld1N0YXJ0ID0gY291bnQoJGh1bWFucykgLSAkaHVtYW5zRW5kIC0gMTsKCi8vICAgICAgICDQt9Cw0LTQsNC10Lwg0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0YHQu9C+0LPQsAogICAgICAgICRjb3VudCA9IC0xOwogICAgfQovLyAgICDQvtCx0L3QvtCy0LvRj9C10Lwg0YHRh9C10YLRh9C40LoKICAgICRjb3VudCArPSAkc2tpcDsKfQoKZWNobyAi0JLRi9C40LPRgNGL0YjQvdGL0LUg0LzQtdGB0YLQsDogIjsKCmZvcmVhY2ggKCRodW1hbnMgYXMgJHZhbHVlKSB7CiAgICBlY2hvICJ7JHZhbHVlfSAiOwp9