Xwab
Форумыnavigate_nextПрограммирование на PHP

Шанс выпадения
Сообщения
шизофф

Доброго времени суток!
Подскажите как в php сделать например выпадение рандомно Из базы предмета в зависимости от процента!Вот допустим есть вещь1, вещь2.
У вещи1 шанс в поле chance равен 30, у вещи2 равен 40.
Допустим игрок нажимает на ссылку "испытать удачу" при нажатии из базы берется вещь в зависимости от поля chance, чем больше шанс тем больше будет падать вещь у которой шанс больше, и меньше будет падать вещь у которой шанс меньше!
Как сделать подскажите плз

30 Апр 2013, 8:18
Akdmeh

Если нужен шанс 30%, запускаем случайный генератор от 1 до 100. Если число входит в диапазон меньше 30 - значит выдаем, иначе - извините.
Все зависит от самого алгоритма генератора случайных чисел. Вот неплохой вариант:
[php:1:660af784eb]<?php
//вероятность 30%
$chance=30;
if(mt_rand(1, 100)<=$chance) echo 'Поздравляю! Плюшек вам и печенек';
else echo 'В другой раз повезет!';
?>[/php:1:660af784eb]

Вот этим скриптиком проверил:

[php:1:660af784eb]<?php
//вероятность 30%
$chance=30;
$ok=0;
$lose=0;
for($i=1; $i<=100000; $i++)
{
if(mt_rand(1, 100)<=$chance) $ok++; else $lose++;
}

echo $ok, ' ', $lose;
?>
[/php:1:660af784eb]

Результаты: 29967 70033; 30036 69964; 29870 70130.

То есть, шанс первого варианта как раз около 30%, что и требовалось.

С тебя плюсик и печеньки

30 Апр 2013, 8:36
шизофф

Akdmeh, спасибо, то что нужно

30 Апр 2013, 9:09
SL_NeKrOmAnT

Хотя по идее, это не то что надо
По хорошему надо записывать куда-то результаты, и выводить допустим при 30% шансе...

30 Апр 2013, 13:31
Akdmeh

4, возможно, но это уже такое дело.

30 Апр 2013, 13:45
Анархист

Нужно продумать математический аспект алгоритма.
добавлено спустя 7 минут:
Случайно берём вещь из базы и учитываем указанные проценты.Ведём отсчет количества 'нажатий' исп.удач. и вычисляем определённым образом.
добавлено спустя 8 секунд:

25 Май 2013, 1:49
Ответить на тему