Форум программистов, компьютерный форум CyberForum.ru

Реализация линейного конгруэнтного датчика - C++

Восстановить пароль Регистрация
 
MAnton
 Аватар для MAnton
23 / 23 / 1
Регистрация: 21.04.2011
Сообщений: 139
01.11.2012, 18:46     Реализация линейного конгруэнтного датчика #1
Нужно сгенерировать случайные числа равномерно распределенные на промежутке [0,1]. Написал вот такую функцию с параметрами по умолчанию x0 = 9340718 M=1073741824 a=484331 c=453816693
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
double* Rand::rnd(long N,int x0, int M, int a, int c){
  size=N;
  int *x;
  x=new int [size];
 
  delete []masRand;
  masRand=new double[size];
 
  x[0]=(a*x0+c)%M;
  masRand[0]=fabs(x[0])*0.4656613e-09;
  for(long i=1;i<size;i++){
    x[i]=(a*(x[i-1])+c);
    x[i]=x[i]%M;
    masRand[i]=fabs(x[i])*0.4656613e-09;
   }
  return masRand;
}
проблема в том что числа генерируются не в промежутка [0,1] а в промежутке [0,0.5]. В чем здесь дело?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2012, 18:46     Реализация линейного конгруэнтного датчика
Посмотрите здесь:

C++ модель анализа пожарного датчика в помещении
C++ Составить программу, которая формирует файл целых чисел, получаемых с помощью датчика случайных чисел
Датчика случайных чисел MPI C++
C++ Написать программу-модель анализа пожарного датчика в помещении
C++ Вывести числовую матрицу 6×9 с помощью датчика случайных чисел и число k(ввод с клавиатуры)
Разработать класс датчика псевдослучайных чисел C++
C++ Форматирование файла целых чисел, полученных с помощью датчика случайных чисел, нахождение контрольной суммы
C++ Определить последовательность чисел и период линейного конгруэнтного генератора ПСЧ для различных параметров

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.11.2012, 19:16     Реализация линейного конгруэнтного датчика #2
Цитата Сообщение от MAnton Посмотреть сообщение
long N,int x0, int M, int a, int c
Откуда я знаю, чем они равны?
MAnton
 Аватар для MAnton
23 / 23 / 1
Регистрация: 21.04.2011
Сообщений: 139
01.11.2012, 19:32  [ТС]     Реализация линейного конгруэнтного датчика #3
Аргументы заданы по умолчанию, в начале я написал чему они равны x0 = 9340718 M=1073741824 a=484331 c=453816693
Yandex
Объявления
01.11.2012, 19:32     Реализация линейного конгруэнтного датчика
Ответ Создать тему
Опции темы

Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru