0 / 0 / 0
Регистрация: 30.05.2016
Сообщений: 9
1

Зерно (seed) рандом функции rand/srand

23.07.2017, 16:43. Показов 7411. Ответов 2

Возможно ли узнать зерно (seed) функции rand/srand. И возможно ли задать свое собственное зерно?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.07.2017, 16:43
Ответы с готовыми решениями:

srand(), rand() и их seed
Пишу класс, объекты которого представляют из себя трехмерные модели планет. Для того что бы...

rand, srand и т.д
Дана целочисленная матрица A (N,M), в которой имеются ровно два одинаковых элемента. Найти индексы...

srand и rand
Здравствуйте. Надо заполнить массив единицами и нулями. srand (time (NULL)); for (int i=0;...

Различия srand() и rand()
Привет, форумчане! Изучаю с++шник, внезапно появился нездоровый интерес. Чем srand() отличается от...

2
Эксперт С++
3063 / 1403 / 423
Регистрация: 19.01.2009
Сообщений: 3,800
23.07.2017, 17:03 2
Senior Pug, если у Вас есть доступ к памяти процесса, то мы можем узнать текущий seed, зависит от деталей реализации.
Например, одна из старых версий реализации rand из стандартной библиотеки С для msvc:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/***
*rand.c - random number generator
*
*       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       defines rand(), srand() - random number generator
*
*******************************************************************************/
 
#include <cruntime.h>
#include <mtdll.h>
#include <stddef.h>
#include <stdlib.h>
 
#ifndef _MT
static long holdrand = 1L;
#endif  /* _MT */
 
/***
*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
        )
{
#ifdef _MT
 
        _getptd()->_holdrand = (unsigned long)seed;
 
#else  /* _MT */
        holdrand = (long)seed;
#endif  /* _MT */
}
 
 
/***
*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 (
        void
        )
{
#ifdef _MT
 
        _ptiddata ptd = _getptd();
 
        return( ((ptd->_holdrand = ptd->_holdrand * 214013L
            + 2531011L) >> 16) & 0x7fff );
 
#else  /* _MT */
        return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
#endif  /* _MT */
}
0
Почетный модератор
Эксперт С++
5848 / 2859 / 392
Регистрация: 01.11.2011
Сообщений: 6,905
27.07.2017, 08:55 3
Лучший ответ Сообщение было отмечено Senior Pug как решение

Решение

По поводу второго вопроса вот пример (отсюда):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* srand example */
#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */
 
int main ()
{
  printf ("First number: %d\n", rand()%100);
  srand (time(NULL));
  printf ("Random number: %d\n", rand()%100);
  srand (1);
  printf ("Again the first number: %d\n", rand()%100);
 
  return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2017, 08:55
Помогаю со студенческими работами здесь

rand() & srand()
кто знает как работает пара функции rand() и srand(). я знаю как это пара функци работает.мне...

srand() и rand() не работают должным образов
Всем привет! В общем задали задание написать программу заполнения двумерного массива случайными...

Что означают строки rand и srand
Доброго времени суток ! Дан код: rand() % (range_max - range_min + 1) + range_min;...

Объясните что делает эта программа (for,rand,srand)
Пожалуйста объясните что делает эта программа. Поподробней про for(i=1;i&lt;=5;i++) ,...

Рандом rand
Решаю задачу из одной книги, так там нужно чтоб пользователю выбивало число (номер счета), не...

Написал программу в DEV C++ но есть ошибка с srand(time(NULL); int size = rand() % 150; ПОМОГИТЕ ПЖ!
#include &lt;TCHAR.h&gt; #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;ctime&gt; using namespace std;...


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

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

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