singlepost

задание процента появления числа << На главную или назад  

уже мозг сломал
задача вроде простая, но не знаю как реализовать
вернее пока не придумал

суть в следущем – сделать что бы определённое число из массива выпадало с заданным процентом вероятности
язык желательно php, но не принципиально
заранее спасибы

41 ответов в теме “задание процента появления числа”

  1. 4
    Лёшка Пьянзин ответил:

    Самый простой и очевидный это #2.
    На нем же можно и модификации построить при желании

  2. 3
    Антон Житарёв ответил:

    предложили такой вариант

    <?php

    $x=50; // размер масива случайных чисел
    $y=5; // как часто повторяться
    $s=10; // какое число повторять

    for($i=0;$i<$x;$i++)
    if($i%$y) $arr[]=$s;
    else $arr[]=rand(0, 100);
    ?>

  3. 2
    Антон Белокрылов ответил:

    Предлагаю "индусский" вариант

    char percentage[10]="0011111112";
    return (percentage[rand()%10]-'0');

  4. 1
    Сергей Старовой ответил:

    Ну самый простой способ: считаешь сумму вероятностей, получаешь случайное число в диапазоне от ноля до этой суммы, и смотришь, в какой диапазон оно попало.
    Тоесть, допустим есть массив из трех элементов. Первый должен выпадать с вероятностью 20%, второй – 70%, и третий – 10%.
    считаем сумму: s =0,2 +0,7 +0,1 =1
    Генерируем случайное число x в диапазоне [0..1].
    | 0 < x < 0,2 – выпадает первый элемент
    | 0,2 < x < 0,9 – выпадает второй элемент
    | 0,9 < x < 1 – третий

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.