|
|
|
| Всем привет. Нужна Ваша помощь в доведении скрипта.
$y=1;//количество просмотров товарной группы
$p=2;//количество товаров в товарной группе
$percent=$p < 10 ? $p : 10;//процент, максимум 10% и потом на уменьшение
if($p!=0){
$yp=floor($y/$p);
}
for($i=0;$i<$p;$i++){
$r = $percent-$i;
if($r>0){
echo round($yp+(($y/100)*$r)).'<br>';
}else{
echo round($yp).'<br>';
}
}
|
Появилась задача назначить количество просмотров всем товарам, т.к. там изначально не было учтено счетчика. Назначать будем исходя из количества просмотров товарной группы в которой эти товары находятся. Нужно распределить так, чтобы суммарное количество просмотров всех товаров в товарной группе не превышало в 2 раза количество просмотров самой товарной группы. Т.е. сначала получаем одинаковое количество деля количество просмотров товарной группы на количество товаров, а потом первым десяти товарам делаем % надбавку от 10% до нуля, остальное выводим просто так. Более идеального варианта я не придумал, чтобы не перешагнуть порог в 2 раза. Сейчас застрял на моменте если количество просмотров товарной группы будет меньше чем самих товаров. В верхнем примере выведет всем нули, но нужно как-то распределить количество просмотров товарной группы по товарам. Прошу помощи. Спасибо. | |
|
|
|
|
|
|
|
для: TetRiska
(27.05.2011 в 11:33)
| |
Нужно распределить так, чтобы суммарное количество просмотров всех товаров в товарной группе не превышало в 2 раза количество просмотров самой товарной группы.
|
А этого никогда не произойдет. Исходя из вашего алгоритма самая большая разница между количеством просмотров группы и суммарным количеством просмотров товаров будет в случае если товаров ровно 10 и превышение будет на 55%, т.е. в 1,55 раза, что удовлетворяет условие непревышения двух раз.
В верхнем примере выведет всем нули, но нужно как-то распределить количество просмотров товарной группы по товарам. Прошу помощи. Спасибо.
|
Вывести единицы первым ($y) товарам, остальным нули | |
|
|
|
|
|
|
|
для: Miha_Kregov
(27.05.2011 в 12:43)
| | примерно так сделал
$y=1;
$p=10;
$percent=$p < 10 ? $p : 10;
if($p!=0){
$yp=floor($y/$p);
}
if($y>$p){
for($i=0;$i<$p;$i++){
$r = $percent-$i;
if($r>0){
echo round($yp+(($y/100)*$r)).'<br>';
}else{
echo round($yp).'<br>';
}
}
}else{
for($i=0;$i<$p;$i++){
if($i<$y){
echo (1).'<br>';
}else{
echo (0).'<br>';
}
}
}
|
| |
|
|
|