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

Генератор случайных чисел - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 5.00
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.09.2013, 11:19     Генератор случайных чисел #1
Здорова господа!

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

От примерно написал кое что, с книги код выдрал, это нормальное распределение случайных чисел в пределах от 0 до 10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    map<int,int> m;
    
    unsigned long seed=0;
    long n=10; //от 0 до 9
    for(int i=0;i<1000000;i++)
    {
        seed=seed*1103515245+12345;//получаем случайное число
        long k=seed;
        double fd=(k&0x7fffffff)/2147483648.0;
        long rez=n*fd;
        if(rez==n) rez--;
    //  cout <<rez<<' ';
        m[rez]++;
    }
    cout <<endl;
 
    //проверка распределения
    for(int i=0;i<10;i++)
        cout <<i<<' '<<m[i]<<endl;
и тут от не понятно отето от k&0x7fffffff, что здесь происходит? что это за число 0x7fffffff??? это long число громадно, так что значит просто так его нельзя записать, нужно только знаками или в шестнадцатеричном виде? В книге написано что это выражение делает доступними 31 бит из 32 токо как?
и что это за long тип? unsigned это ясно это без знаковый тип, только положительные числа, а от long это чтоль большие знаковые числа чтоли?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2013, 11:19     Генератор случайных чисел
Посмотрите здесь:

C++ генератор случайных чисел
C++ Генератор случайных чисел
C++ генератор случайных чисел
Генератор случайных чисел C++
Генератор случайных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
03.09.2013, 16:35  [ТС]     Генератор случайных чисел #21
Цитата Сообщение от Герц Посмотреть сообщение
Окей, знаток, покажи нам как объявить указатель на метод класса, а затем вызвать его по этому указателю.
Я понял что ты имеешь в веду, но я так сделать сходу не могу, нужно синтаксис смотреть.
Цитата Сообщение от Kastaneda Посмотреть сообщение
Так то оно так, только у С++ такооой богатый синтаксис, что никогда нельзя быть уверенным, что знаешь С++ полностью.
Конечно полностью в настоящий момент все нельзя знать, потому что что то забывается. От ознакомится со всем можно, а уже в процессе работы опыт накопится и детали языка усвоятся. Это все со временем с практикой придет. Мне аж не верится долгие мучения заканчиваются, да я уже заметил щас задачки пошли такие которые я большинство уже решал, там класс Matrix создать или там класс Fort_array, как бы повторение легко их щелкаю. Аж не верится что отмучился .
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
03.09.2013, 16:36     Генератор случайных чисел #22
Цитата Сообщение от Kastaneda Посмотреть сообщение
Вот это
C++
1
2
    int *point = &s;
    s = *point;
вообще лишено смысла, это тоже самое, что написать
C++
1
    s = s;
Собственно, это оно и есть. Только если я попытаюсь использовать s сразу после объявления, то компилятор сообщит об использовании неинициированной переменной.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2013, 17:46     Генератор случайных чисел
Еще ссылки по теме:

C++ Генератор случайных чисел
Генератор случайных чисел C++
C++ генератор случайных чисел

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

Или воспользуйтесь поиском по форуму:
0x10
03.09.2013, 17:46     Генератор случайных чисел
  #23

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
Аж не верится что отмучился
Ты еще даже не начал.

Yandex
Объявления
03.09.2013, 17:46     Генератор случайных чисел
Ответ Создать тему
Опции темы

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