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

Rand() как именно генерируются эти числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Контейнер set. Найти имена всех файлов в папке http://www.cyberforum.ru/cpp-beginners/thread1150724.html
Здравствуйте . Есть такая задача : найти имена всех файлов в папке . Имена я нахожу нормально , но сохраняю каждое имя в отдельный индекс массива : WIN32_FIND_DATA FindFileData, FindFileData2; ...
C++ Возведение матрицы в степень Ребята помогите пожалуйста.. Вообще разобраться не могу, а препод сама ничерта не знает.. Надо на C++ 5.0.2 Пусть даны натуральное число n и (построчно) элементы квадратной вещественной матрицы A... http://www.cyberforum.ru/cpp-beginners/thread1150719.html
Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2 C++
Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2. Список L отсортировать в порядке возрастания абсолютных значений элементов. Помогите...
C++ Определить максимальный по модулю элемент элемент массива и позицию в которой он расположен
Помогите пожалуйста решить задачку по с++; Задан одномерный массив В , состоящий из n вещественных элементов. Определить максимальный по модулю элемент элемент массива и позицию в которой он...
C++ Вывести float в шестнадцатеричном формате в поток http://www.cyberforum.ru/cpp-beginners/thread1150679.html
Задача состоит в том что бы вывести float в шестнадцатеричном формате в поток. Модификатор hex не помогает (нормально работает только с целыми положительными), такую штуку как form вижак не видит,...
C++ Найти все цифры числа, которые являются его делителями Пожалуйсто помогите с заданием. Я даже незнаю с чего начать... Задание: 1) задаем натуральное число с клавиатуры 2) сканирование данного числа и нахождения всех чисел на которое делится данное... подробнее

Показать сообщение отдельно
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
20.04.2014, 22:48
Цитата Сообщение от Scrapebs Посмотреть сообщение
m=2^32 = 4294967296
Зависит от компилятора, но, скорее всего, это будет 16-битное значение.

Вот real code из MSVC 9.0 crt: rand.c

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/***
*rand.c - random number generator
*
*       Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
*       defines rand(), srand() - random number generator
*
*******************************************************************************/
 
#include <cruntime.h>
#include <mtdll.h>
#include <stddef.h>
#include <stdlib.h>
 
 
/***
*void srand(seed) - seed the random number generator
*
*Purpose:
*       Seeds the random number generator with the int given.  Adapted from the
*       BASIC random number generator.
*
*Entry:
*       unsigned seed - seed to seed rand # generator with
*
*Exit:
*       None.
*
*Exceptions:
*
*******************************************************************************/
 
void __cdecl srand(unsigned int seed)
{
   _getptd()->_holdrand = (unsigned long)seed;
}
 
/***
*int rand() - returns a random number
*
*Purpose:
*       returns a pseudo-random number 0 through 32767.
*
*Entry:
*       None.
*
*Exit:
*       Returns a pseudo-random number 0 through 32767.
*
*Exceptions:
*
*******************************************************************************/
 
int __cdecl rand()
{
   _ptiddata ptd = _getptd();
 
   return( ((ptd->_holdrand = ptd->_holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
}
В MFC код немного другой, там в srand() подмешивался ID текущего процесса.

Исходного кода нет, смотрел в дизассемблере.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru