Так в чем вопрос-то? К чему все это?
Вот на скорую руку набросал:
<?php// Алгоритм//Составляем "карту" распределения весов//--------------------------------------| длина отрезка равна сумме коэффициентов//---*-------*-*------------*-----------| расставляем на отрезке маркеры (*), отступая каждый раз от предыдущего на расстояние веса//-a-*--b----*c*-----d------*---e-------| каждому диапазону между маркерами соответствует значение//---*----@--*-*-----*------*-----------| бросаем на отрезок случайную точку и смотрим в какой диапазон она попала$m=array('a' =>1, 'b'=>0.7, 'c'=>1.1, 'd'=>4);$sum=array_sum($m); //Получаем сумму весов$map=array(); //Это "отрезок"$next_marker=0.0; //Это смещение следующего маркераforeach ($m as $value=>$weight){ $range=array('from'=>$next_marker,'to'=>$next_marker+$weight); $map[$value]=$range; //Ставим маркер по вычисленному смещению $next_marker+=$weight; }$random_point=rand(0,$sum*1000)/1000; //Бросаем случайную "точку" на "отрезок", обеспечивая достаточную дискретность//Смотрим в какой диапазон попала случайная точка $result=null;foreach ($map as $value=>$range){ if ($random_point>$range['from'] and $random_point<=$range['to']) { $result=$value; break; } }echo $result;
Хз, может велосипед изобрел. Может уже есть какая-то встроенная пхпшная функция, или все это проще делается. Но это решение почти рабочее. Надо только проверить граничные значения...
Верно :)
Какая лицензия ПО?
Чем отличается от битрикса?
И главное - кому в действительности это кроме вас самих может быть нужно?
Ни один хоть сколько-нибудь серьезный проект не будет использовать "это" в своей работе. Неизвестный, недокументированный, нетестированный продукт... Риски огромны. Напрасно выброшенный труд.
$text=preg_replace('@\d,\d@','\1.\2',$text);
Основной долг почти выплачен. До 07.12.2009 должен быть погашен основной долг и выплачена компенсация за задержку. Условия в первом сообщении в силе.
В случае исполнения своих обязательств по погашению основного долга и компенсации за задержку до 07.12.2009, топик закроется.
потер, потому что уже было.
Ocenok.net. Потому что smysla.net в таком домене. И babla тоже net на такую хренотень.
ХХороший ддомеен.
switch выполняет выражение после case не в том случае, если значение, записанное в case ИСТИННО. А в том случае, если оно СОВПАДАЕТ с тем, что записано после switch.
В первом case в скобках записано ($a<100). Чему равно это выражение? Оно равно true. Во втором case выражение в скобках равно false. switch сравнивает Ноль ($a=0; switch ($a)) с true (в первом case) и с false (во втором случае). Какой case сработает?
Иначе говоря, первый case выполнится в случае, если $a == ($a<100), а второй case выполнится в том случае, если $a == ($a > 100). Поскольку $a=0, то выполняется второй case (0 == false).