Html Код
<?php
Сам код выглядит так:
Запрос к 6 данным в базе:
Запрос
"к чему" (и вот тут нужно мне шанс выпада условно 80%)
2.Запрос
(шанс выпада 10%)
3.Запрос(шанс выпада 5%)
4.Запрос (шанс выпада 4,5%)
5.Запрос (шанс выпада 0,4%)
6.Запрос (шанс выпада 0,1%)
?>
Какая функция мне подойдет,был вариант построить массив и вписать шанс его выпада...Как лучше будет сделать?
Спустя 11 минут, 44 секунды (3.04.2012 - 08:41) Игорь_Vasinsky написал(а):
если рандомо - то так же рандомо и считай))
Спустя 28 секунд (3.04.2012 - 08:41) karoax56 написал(а):
ну,а поподробнее?
Спустя 1 минута, 35 секунд (3.04.2012 - 08:43) Nikitian написал(а):
//$data - массив с нужными данными
$arr = array(
0=>80,
1=>80+10,
2=>80+10+5,
3=>80+10+5+4.5,
4=>80+10+5+4.5+0.4,
5=>80+10+5+4.5+0.4+0.1
);
$rnd = rand(0,1000)/10;
for($i=0;$i<=5;$i++){
if($rnd<=$arr[$i]){
echo $data[$i];
break;
}
}
Спустя 11 минут, 16 секунд (3.04.2012 - 08:54) karoax56 написал(а):
Спасибо,только насчет $data не очень понял,чтобы туда вставить.
Получился код
Твой код.
Запрос
Массив 1 = Запросу и тд.
И вверху html код,сейчас про тестирую
Получился код
Твой код.
Запрос
Массив 1 = Запросу и тд.
И вверху html код,сейчас про тестирую
Спустя 7 минут, 32 секунды (3.04.2012 - 09:02) Nikitian написал(а):
$data - это массив с данными для выборки рандомом, ключи в котором соответствуют ключам из массива $arr, в котором последнее число сложений - вероятность выпадания текущего элемента массива.
Спустя 10 минут, 41 секунда (3.04.2012 - 09:12) I++ написал(а):
Цитата (karoax56 @ 3.04.2012 - 09:29) |
Помогите пожалуйста,возникла проблема,незнаю точно как вывести,мы имеем. Html Код <?php Сам код выглядит так: Запрос к 6 данным в базе: Запрос "к чему" (и вот тут нужно мне шанс выпада условно 80%) 2.Запрос (шанс выпада 10%) 3.Запрос(шанс выпада 5%) 4.Запрос (шанс выпада 4,5%) 5.Запрос (шанс выпада 0,4%) 6.Запрос (шанс выпада 0,1%) ?> Какая функция мне подойдет,был вариант построить массив и вписать шанс его выпада...Как лучше будет сделать? |
3.Запрос(шанс выпада 5%)
4.Запрос (шанс выпада 4,5%)
5.Запрос (шанс выпада 0,4%)
6.Запрос (шанс выпада 0,1%)
<?php
$val = mt_rand(1, 1000);
// Шанс 5%
if($val <= 50)
echo 'Везунчик';
else
echo 'Неудачник';
// ---------------------------
$val = mt_rand(1, 1000);
// Шанс 4.5%
if($val <= 45)
echo 'Везунчик';
else
echo 'Неудачник';
// ---------------------------
$val = mt_rand(1, 1000);
// Шанс 0.4%
if($val <= 4)
echo 'Везунчик';
else
echo 'Неудачник';
// ---------------------------
$val = mt_rand(1, 1000);
// Шанс 0.4%
if($val <= 1)
echo 'Везунчик';
else
echo 'Неудачник';
?>
Чтиво на досуге: http://vneuroka.ru/matmir/presentation.php?cat=3&sub=2&num=4
Цитата |
если рандомо - то так же рандомо и считай)) |
Посмеялся
Спустя 7 минут, 15 секунд (3.04.2012 - 09:20) Nikitian написал(а):
I++
Этот вариант не гарантирует уникальность везунчиков, как и вероятность их возникновения.
Этот вариант не гарантирует уникальность везунчиков, как и вероятность их возникновения.
Спустя 20 минут, 46 секунд (3.04.2012 - 09:40) I++ написал(а):
Цитата (Nikitian @ 3.04.2012 - 10:20) |
I++ Этот вариант не гарантирует уникальность везунчиков, как и вероятность их возникновения. |
Ойли?
http://www.cryptography.com/public/pdf/IntelRNG.pdf
http://software.intel.com/en-us/articles/f...mr-4-processor/
Если у него железо на котором он все это генерирует достаточно современное, то норм.
Исходники PHP с генерацией чисел не смотрел, хотите посмотрите узнайте.
Вот:
rand() 10.03 1.00
fast_rand() 4.99 2.01
rand_sse() 1.83 5.48
В статье есть
Спустя 3 минуты, 18 секунд (3.04.2012 - 09:44) Nikitian написал(а):
Цитата (I++ @ 3.04.2012 - 09:40) |
Ойли? |
Именно так. Я не про уникальность рандомов, а уникальность выпадения везунчика. Он может вообще не выпасть, хотя сумма всех вероятностей 100%, а может и выпасть в нескольких проверках одновременно - тогда уникальность будет неверной, каковой она и является в этом примере.
Спустя 5 минут, 38 секунд (3.04.2012 - 09:49) I++ написал(а):
Цитата |
Он может вообще не выпасть, хотя сумма всех вероятностей 100% |
100% это 100% шанс выпада, как так, что он может не выпасть?
или типа:
Например идем за пивом, у нас шанс 100%, что пиво есть, а приходим пива нет. (В этом случае значение 100% фиктивно.)
Какова логика формирования шанса?
Спустя 3 минуты, 37 секунд (3.04.2012 - 09:53) Nikitian написал(а):
Не так. Идём за пивом: есть Жигулёвское, Василеостновское и Гиннес. Шанс, покупки каждого из них будет соответственно 1%, 80%, 19%. Если считать по вашей системе, получится, что я вообще ничего могу не купить или даже купить сразу несколько разных бутылок, что бессмысленно. У вас же для каждой проверки $val рассчитывается заново, соответственно он может попаст md несколько условий. Если же егоне рассчитывать каждый раз, то он моэет вообще ни кв одно условие не попасть.
Спустя 5 минут, 27 секунд (3.04.2012 - 09:58) I++ написал(а):
Нужно, чтобы выпало одно из Жигулёвское, Василеостновское и Гиннес с шансами 1%, 80%, 19% ?
Спустя 10 минут, 22 секунды (3.04.2012 - 10:09) Nikitian написал(а):
Видимо так. Не спроста же у тс вероятности подобраны так же, чтобы в сумме давали 100%.