PHP - разбить число на N случайных чисел

Пятница, 07 Январь 2011

 

Язык программирования PHP содержит достаточно удобных и полезных функций, которые облегчают жизнь программисту, освобождая его от написания "новых велосипедов", однако бывают моменты когда задумываешься - ниужели перед разработчиками PHP ни разу не возникала эта задача...

 

Ну дискутировать особо не о чем (может в другой раз или в комментариях ;)), опишу лишь саму эту задачу, которую решить стандартной функцией PHP не удалось - по причине ее отсутствия.

 

И так задача - имеется целое число, например 5894, которое нужно разбить на определенное количество частей, например 5, значения же этих частей, должны быть случайными, а их сумма равнятся исходному числу (которое разбиваем на части).

 

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

 

  •  
  • function expRand($num, $parts){
  • $array = array();
  • for ($i = 1; $i <= $parts; $i++) {
  • if ($i != $parts) {
  • $limit = $num * 0.8;
  • $newRest = mt_rand(0, $limit);
  • }else{
  • $newRest = $num;
  • }
  •  
  • $rest -= $newRest;
  •  
  • array_push($array, $newRest);
  • }
  •  
  • return $array;
  • }
  •  
  • print_r(expRand(5894, 5));
  •  

 

Вот и все, спасибо Станиславу Сметанину, за предоставленную функцию!

 

PS. И не забудьте подписаться на ленту новостей RSS

Метки:

Комментарии 

 
anonim Среда, 13 Апрель 2011

Скрипт хороший, но работает непрваильно. Переменная $limit = $num * 0.8; никогда не меняется ....

 

 

Добавить комментарий