Информация об изменениях

Сообщение Re[2]: Можно ли в C# получить рандомные числа по алгориитму от 16.08.2014 9:26

Изменено 16.08.2014 9:38 Skipper_N

Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Skipper_N, Вы писали:

S_N>> Т.е. можно как-нибудь, задав то же стартовое значение, получить такую же последовательность случайных чисел как в C++ ?

А>Исходники CRT идут вместе со студией. У меня, например, в C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\rand.c:


А>
А>void __cdecl srand (
А>        unsigned int seed
А>        )
А>{
А>        _getptd()->_holdrand = (unsigned long)seed;
А>}

А>int __cdecl rand (
А>        void
А>        )
А>{
А>        _ptiddata ptd = _getptd();

А>        return( ((ptd->_holdrand = ptd->_holdrand * 214013L
А>            + 2531011L) >> 16) & 0x7fff );
А>}
А>




return( ((ptd->_holdrand = ptd->_holdrand * 214013L
+ 2531011L) >> 16) & 0x7fff );


Это что, вся реализация алгоритма получения рандомного числа что ли? А я то думал, что там какой сложный алгоритм.
Re[2]: Можно ли в C# получить рандомные числа по алгориитму
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Skipper_N, Вы писали:

S_N>> Т.е. можно как-нибудь, задав то же стартовое значение, получить такую же последовательность случайных чисел как в C++ ?

А>Исходники CRT идут вместе со студией. У меня, например, в C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\rand.c:


А>
А>void __cdecl srand (
А>        unsigned int seed
А>        )
А>{
А>        _getptd()->_holdrand = (unsigned long)seed;
А>}

А>int __cdecl rand (
А>        void
А>        )
А>{
А>        _ptiddata ptd = _getptd();

А>        return( ((ptd->_holdrand = ptd->_holdrand * 214013L
А>            + 2531011L) >> 16) & 0x7fff );
А>}
А>




return( ((ptd->_holdrand = ptd->_holdrand * 214013L
+ 2531011L) >> 16) & 0x7fff );


Это что, вся реализация алгоритма получения рандомного числа что ли? А я то думал, что там какой сложный алгоритм.
Спасибо. Буду экспериментировать с исходниками.