[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP задания для практики
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
inpost
SoMeOnE
Так легче модулировать и добавлять новые варианты smile.gif
Я на своей волне, вместо: 25/50/25 (что в сумме 100%), можно 10/10/10 ввести, допустим smile.gif И получить тот же результат smile.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
SoMeOnE
alex12060
Ну само собой должна быть равна 1.
Ну так зачем же суммировать массив, если мы и так знаем что сумма его значаний равна 1 или 100% ?
SoMeOnE
Цитата (inpost @ 27.09.2011 - 15:05)
SoMeOnE
Так легче модулировать и добавлять новые варианты smile.gif
Я на своей волне, вместо: 25/50/25 (что в сумме 100%), можно 10/10/10 ввести, допустим smile.gif И получить тот же результат smile.gif

Понятно)
SoMeOnE
Вроде, что то получилось. Хотя и стиль не очень нравится)
Invis1ble можешь посмотреть. Ну естественно остальные тоже.
Какие рекомендации к такому коду?

<?php
$probability = array (
'event1' => .25,
'event2' => .5,
'event3' => .1,
'event4' => .1,
'event5' => .05
);

$result = getProbability ($probability);

function getProbability ($prob) {
$next_item = 0;
$i = 1;
$rand = rand(1,100);

foreach ($prob as $k=>$item) {
$next_item = $next_item + ($item*100);

if ($i==1) {
$first_item = $item*100;
if ($item*100>=$rand) {
$result = $k;
}
}
elseif ($i==2) {
if ($first_item<=$rand && $rand<=$next_item) {
$result = $k;
}
$old_next_item = $next_item;
} else {
if ($old_next_item<=$rand && $rand<=$next_item) {
$result = $k;
}
$old_next_item = $next_item;
}
$i++;
}

return $result;
}

print $result;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.