fork(2) download
  1. <?php
  2.  
  3.  
  4. $total = 30; // Всего в классе 30 человек
  5. $skip = 5; // Считалка содержит 5 слогов
  6.  
  7. $arrayParticipants = range(1,$total); // Участники считалки от 1 до $total. Массив от 0 до $total-1
  8. $numberWhoOutNext = $skip-1; // Кто выбывает первым
  9.  
  10. while(count($arrayParticipants)>=$skip) // Считаем пока участников больше чем слогов
  11. {
  12. $length = count($arrayParticipants)-1; // Сколько осталось участников
  13.  
  14. for ($i = $numberWhoOutNext; $i <= $length; $i = $i + $skip)
  15. {
  16. unset($arrayParticipants[$i]);
  17. }
  18. $numberWhoOutNext = $i - $length - 1; // Кто выбывает следующим
  19. sort($arrayParticipants); // Смыкаем порочный круг
  20. }
  21.  
  22. echo "Выигрышные места: ".implode(", ",$arrayParticipants)."\n";
  23.  
  24.  
  25.  
  26.  
Success #stdin #stdout 0.02s 24400KB
stdin
Standard input is empty
stdout
Выигрышные места: 3, 4, 14, 27