Подскажите пожалуйста, нужен алгоритм , либо готовая реализация деления числа на заданное количество неравных частей даже не неравных, а скорей рандомных, желательно чтобы разброс у полученных чисел был небольшой.
Re: алгоритм деления числа на заданное количество неравных ч подсказываю: делишь число на рандом оставшееся делишь на рандом оставшееся делишь на рандом...
Re: алгоритм деления числа на заданное количество неравных ч Спасибо конечно за ответ, по сути да это будет неравные рандомные по значению части, но все равно немного не то, что нужно для меня. Вот нашел хорошее решение http://stackoverflow.com/questions/14959200/dividing-a-numb ... qual-parts набросал реализацию - может кому-нибудь пригодится Код (Text): print_r(get_unequal_parts(500, 7)); function get_unequal_parts($sum, $parts){ //для ограничения диапазона $div = round($sum/$parts); $min_range = $div - round($div/2); $max_range = $div + round($div/2); $r = array(); $sum_r = 0; for($i = 1; $i < $parts + 1; $i++){ $r[$i] = rand($min_range, $max_range); $sum_r = array_sum($r); } for ($i = 1; $i < $parts; $i++) { $temp[$i] = round($r[$i]/$sum_r*$sum); } $temp[$parts] = $sum - array_sum($temp); return $temp; }
Re: алгоритм деления числа на заданное количество неравных ч Код (Text): print_r(get_unequal_parts(500, 7)); function get_unequal_parts($number, $parts) { for ($i = 1; $i <= $parts; $i++) { $randNums[] = mt_rand(); } $sum = array_sum($randNums); foreach ($randNums as $randNum) { $result[] = $number * $randNum / $sum; } return $result; }