Разделить 100% на 4 случайных числа

Печать RSS
1187

K
Автор
Транклюкаторщик
0
Залип я в эту, казалось бы, элементарную задачку.
Суть: есть 100%. нужно их случайным образом раскидать на 4 числа.
например 26, 14, 50, 10.
Как это сделать? Мой не спящий по ночам мозг не вывозит!

Ктулху
0
дык... рандомом генерим первое, вычитаем его из сотни.
генерим второе (например от 10 до 100), так же вычитаем, и так сколько нужно.
думаю логика должна быть такая, последнее число "генерится" само, всё что осталось от сотни.
М

Пацак
0
*deleted* E не увидел название раздела
Изменил: Максим (18.05.2012 / 21:41)

Землянин
0
Какие проценты? Если б число, я понимаю

Добавлено через 02:43 сек.
Вот если как шифт говорит, то это можно. Хотя всё равно муть получится
K
Автор
Транклюкаторщик
0
5, нужно сделать помощь зала для игры миллионер.

Добавлено через 00:57 сек.
2. ShiftBHT, сделал как ты посоветовал:
<?
$var = array();
$var[1] = 100 - rand(1,25);
$var[2] = 100 - $var[1] - rand(1,25);
$var[3] = 100 - $var[1] - $var[2] - rand(1,25);
$var[4] = 100 - ($var[1]+$var[2]+$var[3]);
echo $var[1].' + '.$var[2].' + '.$var[3].' + '.$var[4].' = '. array_sum($var);
?>
все бы ничего, да только отрицательные числа периодически получаются.
Изменил: KOZZ (18.05.2012 / 21:56)

Чатланин
0
диапазон есть у каждого числа? ну т.е может быть такое к примеру 97,1,1,1? больше интересует максимальное значение

Землянин
0
<?php
$base = rand(500,1500);//чтоб были большие числа
$all = $base/(rand(1,100)/100);
$percent = 100 - rand(1,95);
$percent2 = $percent - rand(1,$percent-2);
$percent3 = $percent2 - rand(1,$percent2-2);
$percent4 = 100 - $percent - $percent2 - $percent;
$first = $percent/100*$all;
$second = $percent2/100*$all;
$third = $percent3/100*$all;
$forth = $percent4/100*$all;
?>
поправил
Изменил: &#x202E;PLATINUM (18.05.2012 / 22:11)
K
Автор
Транклюкаторщик
0
8. platinum дамаль, 1743.31034483 + 118.862068966 + 99.0517241379 + -1624.44827586 = 336.775862069
это немножко не тот результат, которого я ожидал )))

Землянин
0
$sum = 0:
do {
$sum = array_sum(rand(0,100),rand(0,100), rand(0,100), rand(0,100));
} while($sum != 100);

Чатланин
0
deleted
Изменил: Виталий (18.05.2012 / 22:25)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск