powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / генератор случайных чисел
11 сообщений из 11, страница 1 из 1
генератор случайных чисел
    #33531518
проф.Н/Г
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа программеры!
Подскажите, плиз, как сделать генератор случайных чисел (с помощью каких угодно средств) в интервале [АБ], чтобы, например, вероятность попадания в интервал [АВ] была 0.75, и соответственно вероятность попадания в интервал [ВБ] была 0.25. Подразумевается А<В<Б.
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33531640
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include <stdlib.h>
double myrand(double a,b,c) {
  if (rand() %  4   ==  0 )
    return (b+c)/ 2 ;
  elase
    return (a+b)/ 2 ;
}
Устраивает ? Вашей постановке удовлетворяет - с вероятностью 0.75 выдает (a+b)/2 что попадает в [a,b], c вероятностью 0.25 выдает (b+c)/2 что попадает в [b,c]. Вы же не сказали какое распределение внутри должно быть.
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33531838
проф.Н/Г
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё бы вам шутки шутковать. Ясно же, что я подразумевал в вопросе какую-нибудь примитивную функцию распределения, ну, пусть будет нормальное или пусть будет равномерное, но не настолько примитивную.
К тому же приведенный ответ неверен. Но не хотелось бы обсуждать его неверность - хотелось бы получить приемлемое решение.
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33531899
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из названного вполне можно извлечь основную мысль приемлимого решения :)
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33531952
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include <stdlib.h>
double myrand(double a,b,c) {
  if (rand() %  3   ==  0 )
    return b+(c-b)*rand()/RAND_MAX;
  else
    return a+(b-a)*rand()/RAND_MAX;
}
Так лучше ?
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33532474
проф.Н/Г
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно-конечно, весьма признателен! Только хотелось бы ещё уточнить, пожалуйста: вообще rand() выдаёт целые числа от нуля до RAND_MAX что ли, а RAND_MAX надо задавать или? А RAND_MIN не бывает?
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33532896
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RAND_MAX определен в <stdlib.h> и зависит от версии компилятора.
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33538554
Magy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нормальное распределие
U = 0..1
a + (b - a)*U
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33538555
Magy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a - мат. ожидание
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33538568
Magy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MagyНормальное распределие
U = 0..1
a + (b - a)*U

Прошу прощения, вот реализация нормального распределения на C#

double W = 2;
double V1 = 0;
double V2 = 0;
while(W>1)
{
V1 = 2*rnd.NextDouble()-1;
V2 = 2*rnd.NextDouble()-1;
W = V1*V1 + V2*V2;
}
return b+a*V1*Math.Sqrt((-2)*Math.Log(W)/W);

a - ср. кв. отклонение
b - мат. ожидание
...
Рейтинг: 0 / 0
генератор случайных чисел
    #33539045
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помнится в ВУЗ-е мы реализовывали нормальное
распределение через отображение линейной
функции на интегральную от Гауссианы. ИМХО
так удобнее.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / генератор случайных чисел
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]