Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107

Вывод рандомного числа ихходя из вероятности вероятностью

07.05.2014, 20:20. Показов 1028. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Мозг уже вообще не варит...
Вот весь код.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php $lotteryWin=0;
$lotteryStavk=0;
$dattta = date('d.m.Y');
$sql="SELECT * FROM everyday_comprekl WHERE date = '$dattta'";
$result=mysql_query($sql);
 
WHILE ($row=mysql_fetch_assoc($result)){
$lotteryWin+=$row["zakaz"];
 
}
 
$adv_list_db = mysql_query("SELECT * FROM everyday_comprekl WHERE date = '$dattta' order by zakaz desc");
 
$adv_list = mysql_fetch_assoc($adv_list_db);
 
 
?>
<br>
<table class='reyt'>
<tr>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center">#</td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center">Логин</td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center">Сумма</td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center">Шанс выигрыша</td>
 
</tr>
 
 
<?
$i = 1;
do{
$shans1 = $adv_list["zakaz"] / $lotteryWin;
$shans = $shans1*100;
 
?>
 
 
<tr>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center"><?=$i++; ?></td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center"><?=$adv_list["username"]; ?></td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center"><?=round($adv_list["zakaz"],3); ?> руб.</td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center"><?=round($shans, 2); ?> %</td>
</tr>
 
 
<?
 
}while($adv_list = mysql_fetch_assoc($adv_list_db));
?>
</table><BR />
 
 
</center>
Как можно выбрать рандомно 1-го пользователя, но исходя из вероятности? Вероятность у каждого выводится из переменной $shans в таблицу...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2014, 20:20
Ответы с готовыми решениями:

Вывод рандомного числа
Вообщем нужна кнопка, которая будет выводить рандомное число от 1 до 12, но с большим шансом выпадения чисел 5 и 6. Помогите, кто чем...

Вывод рандомного числа в файл
Не пойму где ошибка. uses crt; var fl:text; //переменная файла str:string; a:integer; begin

Вывод рандомного числа в Text UI
Есть 9 TextBox-ов и при старте программы в них должны выводится рандомные числа с массива. Проблема в том что не могу разобраться как...

3
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
07.05.2014, 23:12
Цитата Сообщение от HapKoT Посмотреть сообщение
Как можно выбрать рандомно 1-го пользователя, но исходя из вероятности?
Накидал небольшой пример
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?
$p['user1']=0.9;
$p['user2']=0.7;
$p['user3']=0.5;
$p['user4']=0.3;
$p['user5']=0.1;
$w = array();
function shuffle_assoc($array) 
{ 
   $keys = array_keys($array); 
   shuffle($keys); 
   return array_merge(array_flip($keys), $array); 
}
function getWinner($p)
{
    $p=shuffle_assoc($p);
    $winner="";
    foreach ($p as $k => $v)
    {
        $r = rand(0,100)/100;
        if ($r < $v)
        {
            $winner = $k;
            break;
        }
    }
    if (empty($winner))
    {
        end($p);
        $winner = key($p);
    }
    return $winner;
}
for ($i=0; $i < 20; $i++)
{
    $tmp = getWinner($p);
    if (isset($w[$tmp]))
        $w[$tmp]++;
    else
        $w[$tmp] = 1;
    echo "And The Winner Is... ".$tmp."!</br>\r\n";
}
ksort($w);
foreach ($w as $k => $w)
    echo "User $k won $w times.</br>\r\n";
?>
0
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
09.05.2014, 02:26  [ТС]
Вобщем ночью подумал и сделал так.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Запросы...
 
<table class='reyt'>
<tr>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center">#</td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center">Логин</td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center">Сумма</td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center">Шанс выигрыша</td>
</tr>
 
 
<?
$i = 1;
$n = 1;
 
do{
$shans1 = $adv_list["zakaz"] / $lotteryWin;
$shans = $shans1*10000;
$shans7 = $shans/100;
 
?>
 
<tr>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center"><?=$i++; ?></td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center"><?=$adv_list["username"]; ?></td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center"><?=round($adv_list["zakaz"],3); ?> руб.</td>
<td style="border-right:1px solid #CCCCCC; border-bottom:1px solid #CCCCCC;" align="center"><?=round($shans7, 2); ?> %</td>
</tr>
<?
 
 
 
 
 
     while ($n<=$shans7) {
     $opred_p[$n++] = $adv_list['username'];    
     }
 
     
     print '<pre>';
     print_r($opred_p);
     print '</pre>';    
 
 
}while($adv_list = mysql_fetch_assoc($adv_list_db));
 
?>
</table><BR />
Вроде бы должен вывести столько массивов, сколько пользователей участвуют. В каждом должен быть логин пользователя столько раз, какие у него шансы на победу.
Причём цифра в [] в массиве (не помню как называется) должна идти по порядку. т.е. что-то вроде этого должно получится

Кликните здесь для просмотра всего текста
Array
(
[1] => user
[2] => user
[3] => user
[4] => user
[5] => user
[6] => user
[7] => user
[8] => user
[9] => user
[10] => user
[11] => user
[12] => user
[13] => user
[14] => user
[15] => user
[16] => user
[17] => user
[18] => user
[19] => user
[20] => user
[21] => user
[22] => user
[23] => user
[24] => user
[25] => user
[26] => user
[27] => user
[28] => user
[29] => user
[30] => user
[31] => user
[32] => user
[33] => user
[34] => user
[35] => user
[36] => user
[37] => user
[38] => user
[39] => user
[40] => user
[41] => user
[42] => user
[43] => user
[44] => user
[45] => user
[46] => user
[47] => user
[48] => user
[49] => user
[50] => user
[51] => user
[52] => user
[53] => user
[54] => user
[55] => user
[56] => user
[57] => user
[58] => user
[59] => user
[60] => user
[61] => user
[62] => user
[63] => user
[64] => user
[65] => user
[66] => user
[67] => user
[68] => user
[69] => user
[70] => user
[71] => user
[72] => user
[73] => user
[74] => user
[75] => user
[76] => user
[77] => user
[78] => user
[79] => user
[80] => user
[81] => user
[82] => user
[83] => user
[84] => user
[85] => user
[86] => user
[87] => user
)
Array
(
[88] => admin
[89] => admin
[90] => admin
[91] => admin
[92] => admin
[93] => admin
[94] => admin
[95] => admin
[96] => admin
[97] => admin
[98] => admin
[99] => admin
)
Array
(
[100] => testuser
)


Добавлено через 11 часов 35 минут
Up
0
5 / 5 / 5
Регистрация: 31.01.2014
Сообщений: 107
14.05.2014, 19:12  [ТС]
Помогите, пожалуйста, кто-нибудь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2014, 19:12
Помогаю со студенческими работами здесь

Вывод рандомного числа раз в сутки
Доброго времени суток! Подскажите пожалуйста, как правильно реализовать. Нужно на сайте реализовать кнопку, где будет выводится число, к...

Вывод рандомного числа из заданного массива
Подскажите пожалуйста каким образом можно &quot;рандомно&quot; вывести на экран из массива число. Например задан массив int mas={12, 23, 45, 0, 10,...

Вывод рандомного числа через метод
Все сделал вроде логично, но вернуть рандомное число не могу В return rnd возникает ошибка Не удается неявно преобразовать тип...

Добавить в программу вывод рандомного числа
Программа выводит 16ый код буквы нажатой клавиши, и интервал времени между нажатиями. Но надо чтобы после всего этого прога выводила еще и...

Вывод шестнадцатизнакового рандомного числа в шестнадцатеричной системе
День добрый! Подскажите плиз с чего начать: нужно сделать так, чтоб при нажатии кнопки выводилось шестнадцатизнаковое рандомное число в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru