25 / 25 / 5
Регистрация: 21.04.2011
Сообщений: 141
1

Время для функции генерирующей случайные величины

26.08.2013, 21:39. Показов 630. Ответов 5
Метки нет (Все метки)

я написал функцию которая генерирует случайные величины в промежутке [0,1]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
valarray<double> cRand::base_rnd(size_t N){
  valarray<double> v;
  v.resize(N);
  int x,y;
  int  x0 = time(0);
  x = fabs((a*x0 + c)%M);
  v[0] = double(x)/M;
  for(size_t i = 1;i<N;i++){
    y = fabs((a*x + c)%M);
    v[i] =double(y)/M;
    x = y;
  }
  return v;
}
Функция работает нормально, но если я скажем хочу вызвать эту функцию десять раз то она будет выдавать одинаковые числа, потому что time(0) выдает каждый раз одинаковое число. Подскажите, как это исправить?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.08.2013, 21:39
Ответы с готовыми решениями:

Напишите пожалуйста Код программы генерирующей случайные величины но не функцией Rand
Напишите пожалуйста Код программы генерирующей случайные величины но не функцией Rand а как -...

Равномерно распределенные случайные величины
Создать программу, в которой реализовать генерацию n равномерно распределенных случайных чисел,...

Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы программы
1. Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время...

Случайные величины и случайные векторы
помогите с решением следующих вариантов

5
1404 / 646 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
26.08.2013, 21:42 2
MAnton, может делать srand(time(NULL)) , а потом x0 = rand() ?
0
Заблокирован
Автор FAQ
26.08.2013, 21:50 3
MAnton, чтобы rand генерировал псевдослучайные последовательности следует производить начальную установку генератора случайных чисел, как раз
Цитата Сообщение от Dani Посмотреть сообщение
srand(time(0))
это и делает
0
25 / 25 / 5
Регистрация: 21.04.2011
Сообщений: 141
26.08.2013, 21:52  [ТС] 4
я хочу обойтись без rand() а написать полностью свой механизм псевдослучайных чисел
0
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
26.08.2013, 21:53 5
Я придумал функцию лучше:
C++
1
2
3
double my_rand() {
    return rand() / (double)RAND_MAX;
}
Выдает величины в промежутке [0,1]

Добавлено через 15 секунд
Я придумал функцию лучше:
C++
1
2
3
double my_rand() {
    return rand() / (double)RAND_MAX;
}
Выдает величины в промежутке [0,1]
0
Заблокирован
Автор FAQ
26.08.2013, 21:56 6
Нерационально:
Цитата Сообщение от MAnton Посмотреть сообщение
x = fabs((a*x0 + c)%M);
* v[0] = double(x)/M;
* for(size_t i = 1;i<N;i++){
* * y = fabs((a*x + c)%M);
* * v[i] =double(y)/M;
* * x = y;
* }
Хотя бы так запиши
C++
1
2
3
4
5
6
7
8
9
valarray<double> cRand::base_rnd(size_t N)
{
    valarray<double> v;
    v.resize(N);
    int x = time(0);
    for(size_t i = 0; i < N;i++)
        x = (v[i] = fabs((a*x + c)%M) *1.0 / M);
    return v;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2013, 21:56
Помогаю со студенческими работами здесь

Корни квадратного уравнения независимые случайные величины, равномерно распределенные на интервале. Определить плотности вероятности для коэффициентов
Задача. Корни квадратного уравнения x^2+ax+b=0 независимые случайные величины, равномерно...

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

Случайные величины
Добрый день! Не знаю как найти решение следующих задач Чистяков курс теории вероятности,...

случайные величины
Бросают 7 игральных костей. Найти математическое ожидание суммы числа очков, которые выпадут на...

Случайные величины
может у кого возникнут идеи как решать эти примеры

Случайные величины
Помогите разобраться с задачей. Если 1 пункт я знаю как решить, то 2 понятия не имею:( Формулу хотя...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru