Добрый день, дорогие форумчане. Я не специалист в php програмировании, поэтому решил обратиться к вам. У меня есть сайт, и мне надо что бы при заходе на страницу с php кодом выдавалось случайное число к примеру от 1 до 10 (но по сайту так же надо будет от 100 до 1000 или от 500 до 5000 с шагом 100). Но выдача была не равномерная, а к примеру от цифры 1 до 5 60%, цифра 6 10%, цифра 7 10%, цифра 8 10%, цифра 9 и 10 5%. Но я не знаю как это реализовать, весь интернет перешерстил уже . Прошу кто добрый и может помочь, написать php код. Можно если не сложно с пометками, но я в случае чего разберусь сам, если лень делать пометки . Добавлено спустя 13 минут 39 секунд: В помошь специалистам, нашел идею описанную где то. Может быть вам это как то поможет. — Нам нужен генератор псч, скажем от 0 до 99 с варьируемой вероятностю выпадения чисел. — Заводим массив из 10000 элементов. Все числа заносим в массив по 100 раз. — Выбирая из массива число со случайным (через обычный гпсч) индексом от 0 до 9999, мы получим число от 0 до 99 с равной вероятностью. — Для уменьшения вероятности выпадения числа нужно уменьшить количество этих чисел в массиве. Например, если число «8» будет входить в массив не 100, а 50 раз — то его вероятность выпадения будет вдвое ниже, чем остальных. — Для увеличения вероятности выпадения числа расширяем массив и добавляем ещё таких чисел.
Результат: Код (PHP): array ( '1-5' => 600, // ~60% 6 => 99, // ~10% 7 => 91, // ~10% 8 => 99, // ~10% 9 => 52, // ~5% 10 => 59, // ~5% ) Код: Код (PHP): <?php function myrandom() { $r = rand(1, 100); switch ($r) { case ($r <= 60): return rand(1, 5); break; case ($r <= 70): return 6; break; case ($r <= 80): return 7; break; case ($r <= 90): return 8; break; case ($r <= 95): return 9; break; case ($r <= 100): return 10; break; } } // Для проверки $arr = array( '1-5'=>0, '6'=>0, '7'=>0, '8'=>0, '9'=>0, '10'=>0, ); for ($i = 1; $i <= 1000; $i++) { $tmp = myrandom(); if($tmp <= 5) { $arr['1-5']++; continue; } $arr[$tmp]++; } echo '<pre>'; var_export($arr);