fork(1) download
  1.  
  2. <?php
  3. $quantity = 30;
  4. $skip = 5;
  5.  
  6. for ($s = 1; $s <= $quantity; $s++)
  7. $total[] = $s;
  8.  
  9. $k = 1;//счётчик $skip-а
  10. $i = 0;//счётчик буковок
  11. while (count($total) >= $skip)
  12. {
  13. $lastElement = findLast($total);
  14. if ($k == $skip && $total[$i] == $lastElement)//когда выкидываемый номер является последним
  15. {
  16. echo "Считаем {$total[$i]} [i]=$i; [k]=$k Длина массива " . count($total) . " Последний элемент " . $lastElement . " \n";
  17. echo "!!! Выбрасываем {$total[$i]} [i]=$i, [k]=$k \n";
  18. echo "Сбрасываем счет $total[$i] = " . $lastElement . "\n";
  19. unset($total[$i]);
  20. $k = 1;
  21. reset($total);
  22. $i = 0;
  23. sort($total);
  24. }
  25. elseif ($k == $skip && $total[$i] != $lastElement)//когда выкидываемый номер не явяется последним
  26. {
  27. echo "Считаем {$total[$i]} [i]=$i; [k]=$k Длина массива " . count($total) . " Последний элемент " . $lastElement . " \n";
  28. echo "!!! Выбрасываем {$total[$i]} [i]=$i, [k]=$k \n";
  29. unset($total[$i]);
  30. $k = 1;
  31. $i++;
  32. }
  33. elseif ($k != $skip && $total[$i] == $lastElement)//последний номер, сброс на начало
  34. {
  35. echo "Считаем {$total[$i]} [i]=$i; [k]=$k Длина массива " . count($total) . " Последний элемент " . $lastElement . " \n";
  36. echo "Сбрасываем счет $total[$i] = " . $lastElement . "\n";
  37. reset($total);
  38. $i = 0;
  39. $k++;
  40. sort($total);
  41. }
  42. else
  43. {
  44. echo "Считаем {$total[$i]} [i]=$i; [k]=$k Длина массива " . count($total) . " Последний элемент " . $lastElement . " \n";
  45. $k++;
  46. $i++;
  47. }
  48.  
  49.  
  50. }
  51. echo "Выигрышные места: ";
  52. foreach ($total as $value)
  53. {
  54. echo "$value ";
  55. }
  56.  
  57. function findLast($array)
  58. {
  59. sort($array);
  60. return array_pop($array);
  61. }
  62.  
  63. /*вывод текущих значений можно было бы, как повоторяющийся код,
  64. скинуть в функцию, но это костыль только для удобства человека, читающего
  65. этот быдлокод, в итоге его быть НЕ ДОЛЖНО же... но пусть будет, лел
  66. олсо, ветвление имеет такой кудрявый вид для избежания путанницы, появляющейся
  67. при выбрасывании ПОСЛЕДНЕГО в массиве элемента, поэтому пришлось распилить
  68. на конкретные случаи, иначе фейл неизбежно вызвали бы unset-reset и сбился бы
  69. доступ к массиву по $i*/
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Считаем 1   [i]=0; [k]=1 Длина массива 30 Последний элемент 30 
Считаем 2   [i]=1; [k]=2 Длина массива 30 Последний элемент 30 
Считаем 3   [i]=2; [k]=3 Длина массива 30 Последний элемент 30 
Считаем 4   [i]=3; [k]=4 Длина массива 30 Последний элемент 30 
Считаем 5   [i]=4; [k]=5 Длина массива 30 Последний элемент 30 
!!! Выбрасываем 5 [i]=4, [k]=5 
Считаем 6   [i]=5; [k]=1 Длина массива 29 Последний элемент 30 
Считаем 7   [i]=6; [k]=2 Длина массива 29 Последний элемент 30 
Считаем 8   [i]=7; [k]=3 Длина массива 29 Последний элемент 30 
Считаем 9   [i]=8; [k]=4 Длина массива 29 Последний элемент 30 
Считаем 10   [i]=9; [k]=5 Длина массива 29 Последний элемент 30 
!!! Выбрасываем 10 [i]=9, [k]=5 
Считаем 11   [i]=10; [k]=1 Длина массива 28 Последний элемент 30 
Считаем 12   [i]=11; [k]=2 Длина массива 28 Последний элемент 30 
Считаем 13   [i]=12; [k]=3 Длина массива 28 Последний элемент 30 
Считаем 14   [i]=13; [k]=4 Длина массива 28 Последний элемент 30 
Считаем 15   [i]=14; [k]=5 Длина массива 28 Последний элемент 30 
!!! Выбрасываем 15 [i]=14, [k]=5 
Считаем 16   [i]=15; [k]=1 Длина массива 27 Последний элемент 30 
Считаем 17   [i]=16; [k]=2 Длина массива 27 Последний элемент 30 
Считаем 18   [i]=17; [k]=3 Длина массива 27 Последний элемент 30 
Считаем 19   [i]=18; [k]=4 Длина массива 27 Последний элемент 30 
Считаем 20   [i]=19; [k]=5 Длина массива 27 Последний элемент 30 
!!! Выбрасываем 20 [i]=19, [k]=5 
Считаем 21   [i]=20; [k]=1 Длина массива 26 Последний элемент 30 
Считаем 22   [i]=21; [k]=2 Длина массива 26 Последний элемент 30 
Считаем 23   [i]=22; [k]=3 Длина массива 26 Последний элемент 30 
Считаем 24   [i]=23; [k]=4 Длина массива 26 Последний элемент 30 
Считаем 25   [i]=24; [k]=5 Длина массива 26 Последний элемент 30 
!!! Выбрасываем 25 [i]=24, [k]=5 
Считаем 26   [i]=25; [k]=1 Длина массива 25 Последний элемент 30 
Считаем 27   [i]=26; [k]=2 Длина массива 25 Последний элемент 30 
Считаем 28   [i]=27; [k]=3 Длина массива 25 Последний элемент 30 
Считаем 29   [i]=28; [k]=4 Длина массива 25 Последний элемент 30 
Считаем 30   [i]=29; [k]=5 Длина массива 25 Последний элемент 30 
!!! Выбрасываем 30 [i]=29, [k]=5 
Сбрасываем счет 30 = 30
Считаем 1   [i]=0; [k]=1 Длина массива 24 Последний элемент 29 
Считаем 2   [i]=1; [k]=2 Длина массива 24 Последний элемент 29 
Считаем 3   [i]=2; [k]=3 Длина массива 24 Последний элемент 29 
Считаем 4   [i]=3; [k]=4 Длина массива 24 Последний элемент 29 
Считаем 6   [i]=4; [k]=5 Длина массива 24 Последний элемент 29 
!!! Выбрасываем 6 [i]=4, [k]=5 
Считаем 7   [i]=5; [k]=1 Длина массива 23 Последний элемент 29 
Считаем 8   [i]=6; [k]=2 Длина массива 23 Последний элемент 29 
Считаем 9   [i]=7; [k]=3 Длина массива 23 Последний элемент 29 
Считаем 11   [i]=8; [k]=4 Длина массива 23 Последний элемент 29 
Считаем 12   [i]=9; [k]=5 Длина массива 23 Последний элемент 29 
!!! Выбрасываем 12 [i]=9, [k]=5 
Считаем 13   [i]=10; [k]=1 Длина массива 22 Последний элемент 29 
Считаем 14   [i]=11; [k]=2 Длина массива 22 Последний элемент 29 
Считаем 16   [i]=12; [k]=3 Длина массива 22 Последний элемент 29 
Считаем 17   [i]=13; [k]=4 Длина массива 22 Последний элемент 29 
Считаем 18   [i]=14; [k]=5 Длина массива 22 Последний элемент 29 
!!! Выбрасываем 18 [i]=14, [k]=5 
Считаем 19   [i]=15; [k]=1 Длина массива 21 Последний элемент 29 
Считаем 21   [i]=16; [k]=2 Длина массива 21 Последний элемент 29 
Считаем 22   [i]=17; [k]=3 Длина массива 21 Последний элемент 29 
Считаем 23   [i]=18; [k]=4 Длина массива 21 Последний элемент 29 
Считаем 24   [i]=19; [k]=5 Длина массива 21 Последний элемент 29 
!!! Выбрасываем 24 [i]=19, [k]=5 
Считаем 26   [i]=20; [k]=1 Длина массива 20 Последний элемент 29 
Считаем 27   [i]=21; [k]=2 Длина массива 20 Последний элемент 29 
Считаем 28   [i]=22; [k]=3 Длина массива 20 Последний элемент 29 
Считаем 29   [i]=23; [k]=4 Длина массива 20 Последний элемент 29 
Сбрасываем счет 29 = 29
Считаем 1   [i]=0; [k]=5 Длина массива 20 Последний элемент 29 
!!! Выбрасываем 1 [i]=0, [k]=5 
Считаем 2   [i]=1; [k]=1 Длина массива 19 Последний элемент 29 
Считаем 3   [i]=2; [k]=2 Длина массива 19 Последний элемент 29 
Считаем 4   [i]=3; [k]=3 Длина массива 19 Последний элемент 29 
Считаем 7   [i]=4; [k]=4 Длина массива 19 Последний элемент 29 
Считаем 8   [i]=5; [k]=5 Длина массива 19 Последний элемент 29 
!!! Выбрасываем 8 [i]=5, [k]=5 
Считаем 9   [i]=6; [k]=1 Длина массива 18 Последний элемент 29 
Считаем 11   [i]=7; [k]=2 Длина массива 18 Последний элемент 29 
Считаем 13   [i]=8; [k]=3 Длина массива 18 Последний элемент 29 
Считаем 14   [i]=9; [k]=4 Длина массива 18 Последний элемент 29 
Считаем 16   [i]=10; [k]=5 Длина массива 18 Последний элемент 29 
!!! Выбрасываем 16 [i]=10, [k]=5 
Считаем 17   [i]=11; [k]=1 Длина массива 17 Последний элемент 29 
Считаем 19   [i]=12; [k]=2 Длина массива 17 Последний элемент 29 
Считаем 21   [i]=13; [k]=3 Длина массива 17 Последний элемент 29 
Считаем 22   [i]=14; [k]=4 Длина массива 17 Последний элемент 29 
Считаем 23   [i]=15; [k]=5 Длина массива 17 Последний элемент 29 
!!! Выбрасываем 23 [i]=15, [k]=5 
Считаем 26   [i]=16; [k]=1 Длина массива 16 Последний элемент 29 
Считаем 27   [i]=17; [k]=2 Длина массива 16 Последний элемент 29 
Считаем 28   [i]=18; [k]=3 Длина массива 16 Последний элемент 29 
Считаем 29   [i]=19; [k]=4 Длина массива 16 Последний элемент 29 
Сбрасываем счет 29 = 29
Считаем 2   [i]=0; [k]=5 Длина массива 16 Последний элемент 29 
!!! Выбрасываем 2 [i]=0, [k]=5 
Считаем 3   [i]=1; [k]=1 Длина массива 15 Последний элемент 29 
Считаем 4   [i]=2; [k]=2 Длина массива 15 Последний элемент 29 
Считаем 7   [i]=3; [k]=3 Длина массива 15 Последний элемент 29 
Считаем 9   [i]=4; [k]=4 Длина массива 15 Последний элемент 29 
Считаем 11   [i]=5; [k]=5 Длина массива 15 Последний элемент 29 
!!! Выбрасываем 11 [i]=5, [k]=5 
Считаем 13   [i]=6; [k]=1 Длина массива 14 Последний элемент 29 
Считаем 14   [i]=7; [k]=2 Длина массива 14 Последний элемент 29 
Считаем 17   [i]=8; [k]=3 Длина массива 14 Последний элемент 29 
Считаем 19   [i]=9; [k]=4 Длина массива 14 Последний элемент 29 
Считаем 21   [i]=10; [k]=5 Длина массива 14 Последний элемент 29 
!!! Выбрасываем 21 [i]=10, [k]=5 
Считаем 22   [i]=11; [k]=1 Длина массива 13 Последний элемент 29 
Считаем 26   [i]=12; [k]=2 Длина массива 13 Последний элемент 29 
Считаем 27   [i]=13; [k]=3 Длина массива 13 Последний элемент 29 
Считаем 28   [i]=14; [k]=4 Длина массива 13 Последний элемент 29 
Считаем 29   [i]=15; [k]=5 Длина массива 13 Последний элемент 29 
!!! Выбрасываем 29 [i]=15, [k]=5 
Сбрасываем счет 29 = 29
Считаем 3   [i]=0; [k]=1 Длина массива 12 Последний элемент 28 
Считаем 4   [i]=1; [k]=2 Длина массива 12 Последний элемент 28 
Считаем 7   [i]=2; [k]=3 Длина массива 12 Последний элемент 28 
Считаем 9   [i]=3; [k]=4 Длина массива 12 Последний элемент 28 
Считаем 13   [i]=4; [k]=5 Длина массива 12 Последний элемент 28 
!!! Выбрасываем 13 [i]=4, [k]=5 
Считаем 14   [i]=5; [k]=1 Длина массива 11 Последний элемент 28 
Считаем 17   [i]=6; [k]=2 Длина массива 11 Последний элемент 28 
Считаем 19   [i]=7; [k]=3 Длина массива 11 Последний элемент 28 
Считаем 22   [i]=8; [k]=4 Длина массива 11 Последний элемент 28 
Считаем 26   [i]=9; [k]=5 Длина массива 11 Последний элемент 28 
!!! Выбрасываем 26 [i]=9, [k]=5 
Считаем 27   [i]=10; [k]=1 Длина массива 10 Последний элемент 28 
Считаем 28   [i]=11; [k]=2 Длина массива 10 Последний элемент 28 
Сбрасываем счет 28 = 28
Считаем 3   [i]=0; [k]=3 Длина массива 10 Последний элемент 28 
Считаем 4   [i]=1; [k]=4 Длина массива 10 Последний элемент 28 
Считаем 7   [i]=2; [k]=5 Длина массива 10 Последний элемент 28 
!!! Выбрасываем 7 [i]=2, [k]=5 
Считаем 9   [i]=3; [k]=1 Длина массива 9 Последний элемент 28 
Считаем 14   [i]=4; [k]=2 Длина массива 9 Последний элемент 28 
Считаем 17   [i]=5; [k]=3 Длина массива 9 Последний элемент 28 
Считаем 19   [i]=6; [k]=4 Длина массива 9 Последний элемент 28 
Считаем 22   [i]=7; [k]=5 Длина массива 9 Последний элемент 28 
!!! Выбрасываем 22 [i]=7, [k]=5 
Считаем 27   [i]=8; [k]=1 Длина массива 8 Последний элемент 28 
Считаем 28   [i]=9; [k]=2 Длина массива 8 Последний элемент 28 
Сбрасываем счет 28 = 28
Считаем 3   [i]=0; [k]=3 Длина массива 8 Последний элемент 28 
Считаем 4   [i]=1; [k]=4 Длина массива 8 Последний элемент 28 
Считаем 9   [i]=2; [k]=5 Длина массива 8 Последний элемент 28 
!!! Выбрасываем 9 [i]=2, [k]=5 
Считаем 14   [i]=3; [k]=1 Длина массива 7 Последний элемент 28 
Считаем 17   [i]=4; [k]=2 Длина массива 7 Последний элемент 28 
Считаем 19   [i]=5; [k]=3 Длина массива 7 Последний элемент 28 
Считаем 27   [i]=6; [k]=4 Длина массива 7 Последний элемент 28 
Считаем 28   [i]=7; [k]=5 Длина массива 7 Последний элемент 28 
!!! Выбрасываем 28 [i]=7, [k]=5 
Сбрасываем счет 28 = 28
Считаем 3   [i]=0; [k]=1 Длина массива 6 Последний элемент 27 
Считаем 4   [i]=1; [k]=2 Длина массива 6 Последний элемент 27 
Считаем 14   [i]=2; [k]=3 Длина массива 6 Последний элемент 27 
Считаем 17   [i]=3; [k]=4 Длина массива 6 Последний элемент 27 
Считаем 19   [i]=4; [k]=5 Длина массива 6 Последний элемент 27 
!!! Выбрасываем 19 [i]=4, [k]=5 
Считаем 27   [i]=5; [k]=1 Длина массива 5 Последний элемент 27 
Сбрасываем счет 27 = 27
Считаем 3   [i]=0; [k]=2 Длина массива 5 Последний элемент 27 
Считаем 4   [i]=1; [k]=3 Длина массива 5 Последний элемент 27 
Считаем 14   [i]=2; [k]=4 Длина массива 5 Последний элемент 27 
Считаем 17   [i]=3; [k]=5 Длина массива 5 Последний элемент 27 
!!! Выбрасываем 17 [i]=3, [k]=5 
Выигрышные места: 3 4 14 27