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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
#1

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

20.06.2012, 18:53. Просмотров 2258. Ответов 28
Метки нет (Все метки)

составить генератор случайных чисел, имеющий два члена - границы последовательности. Предоставить метод, который выводит СЧ из диапазона чисел, расположенных между этими членами. Всё это визуализировать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2012, 18:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Генератор случайных чисел (C++):

Генератор случайных чисел - C++
Вот написал программу, которая генерирует матрицу 9*9. В каждой строке - от 1 до 9, не повторяются В каждом стобце - то же самое. ...

Генератор случайных чисел (с UI) - C++
Я создал простенький генератор случайных чисел с Пользовательским Интерфейсом (GUI). Добавлено через 21 минуту Актуальна :)

Генератор случайных чисел - C++
Помогите написать программу, которая генерировала бы случайные числа мультипликативным конгруэнтным методом. Нужно использовать такое...

генератор случайных чисел - C++
как реализовать генератор случайных чисел? чтобы можно было вводить два числа(например 56 и 519), и случайное число генерировалось из...

Генератор случайных чисел - C++
Здраствуййте :( int a=rand()%10000; std::cout << a; getchar(); return 0; int a=rand()%1000; std::cout << a; getchar();...

Генератор случайных чисел - C++
Реализовать генератор случайных числе в диапазоне от нуля до единицы. После генерации случайного числа, записывать 0 или 1 (в соответствии...

28
Schizorb
20.06.2012, 20:56     Генератор случайных чисел
  #16

Не по теме:

g-h, ну задание такое у человека, что ж теперь поделаешь?

0
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
20.06.2012, 21:08 #17
Цитата Сообщение от g-h Посмотреть сообщение
MrGluck, зачем для этой задачи класс писать?! Ведь эта задача и так решается. Без всяких классов!
Зачем люди пишут классы для работы с дробями, например? Можно ж и так числа перемножать и делить. Ну наверное попрактиковаться. С ТС-ом я общался в ЛС, из диалога понял по ключевым словам "препод сказал средставми ооп и с использованием инкапсуляции", что нужно сделать через классы.

ТСу на заметку. Как я вам уже и говорил, постарайтесь четко формулировать условие задачи. Правильно поставленный вопрос - половина ответа
0
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
20.06.2012, 21:10  [ТС] #18
Цитата Сообщение от MrGluck Посмотреть сообщение
Зачем люди пишут классы для работы с дробями, например? Можно ж и так числа перемножать и делить. Ну наверное попрактиковаться. С ТС-ом я общался в ЛС, из диалога понял по ключевым словам "препод сказал средставми ооп и с использованием инкапсуляции", что нужно сделать через классы.

ТСу на заметку. Как я вам уже и говорил, постарайтесь четко формулировать условие задачи. Правильно поставленный вопрос - половина ответа
как понял, ТС-это я)) но не понял что это значит) спасибо, я Вас понял)
0
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
20.06.2012, 21:11 #19
Цитата Сообщение от miles_slade Посмотреть сообщение
собрал всё, но не запускается проект, dev-cpp... в чём дело, знает кто-нибудь?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
#include <conio.h>
 
class myrandom
{
    int a, b;
  public:
    myrandom(){}
    myrandom(int x, int y): a(x), b(y){}
    int randomNumber() {return rand() % (b-a+1) + a; }
};
 
int main()
{
    int a, b;
    std::cin>> a>> b;
    myrandom X(a, b);
    for (int i=0; i < 10; i++)
        std::cout<< X.randomNumber()<< " ";
    getch();
    return 0;
}
Если проблема лишь в том, что окошко запускается и исчезает, то добавление паузы, как в коде выше поможет. Если опять будет ругаться - нажмите Ctrl+F11 (Перестроить все).

Добавлено через 28 секунд
Цитата Сообщение от miles_slade Посмотреть сообщение
как понял, ТС-это я)) но не понял что это значит) спасибо, я Вас понял)
ТС - топик стартер (автор темы)
2
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
20.06.2012, 21:16  [ТС] #20
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
#include <conio.h>
 
class myrandom
{
    int a, b;
  public:
    myrandom(){}
    myrandom(int x, int y): a(x), b(y){}
    int randomNumber() {return rand() % (b-a+1) + a; }
};
 
int main()
{
    int a, b;
    std::cin>> a>> b;
    myrandom X(a, b);
    for (int i=0; i < 10; i++)
        std::cout<< X.randomNumber()<< " ";
    getch();
    return 0;
}
Если проблема лишь в том, что окошко запускается и исчезает, то добавление паузы, как в коде выше поможет. Если опять будет ругаться - нажмите Ctrl+F11 (Перестроить все).

Добавлено через 28 секунд


ТС - топик стартер (автор темы)
простите конечно, но не помогает ни Ctrl+F11, ни стандартные Ctrl+F10 и Ctrl+F9
0
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
20.06.2012, 21:18 #21
miles_slade, добавьте в конце программы вот такую строчку
C++
1
system("pause")
И будет вам счастье
1
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
20.06.2012, 21:18 #22
Цитата Сообщение от miles_slade Посмотреть сообщение
простите конечно, но не помогает ни Ctrl+F11, ни стандартные Ctrl+F10 и Ctrl+F9
Пробуйте создать новый файл и ввести туда код. Не знаю что вы делаете, но всё работает
Генератор случайных чисел
1
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
20.06.2012, 21:33  [ТС] #23
Цитата Сообщение от MrGluck Посмотреть сообщение
Пробуйте создать новый файл и ввести туда код. Не знаю что вы делаете, но всё работает
Вложение 164002
всё получилось, спасибо.

если не смложно, теперь нужно сделать так, чтобы это всё было примерно так, как на рисунке... представления не имею даже, как с классами сделать тоже самое
0
Миниатюры
Генератор случайных чисел  
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
20.06.2012, 22:00 #24
miles_slade, переходите на Windows 7! XP вроде уже устарела
0
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
21.06.2012, 11:11  [ТС] #25
Цитата Сообщение от g-h Посмотреть сообщение
miles_slade, переходите на Windows 7! XP вроде уже устарела
мне сейчас не до этого)))

Добавлено через 13 часов 8 минут
C++ (Qt)
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
#include <windows.h>
#include <cstdlib>
#include <ctime>
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
enum
{
    IDC_BUTTON1,
    IDC_EDIT1,
    IDC_EDIT2,
    IDC_STATIC
};
char szClassName[ ] = "generator";
HWND btn,ed1,ed2;
int WINAPI WinMain (HINSTANCE hInst,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nCmdShow)
{
    MSG messages;
    WNDCLASSEX wincl;
    wincl.hInstance = hInst;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;
    wincl.style = CS_DBLCLKS;
    wincl.cbSize = sizeof (WNDCLASSEX);
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    if (!RegisterClassEx (&wincl))
        return 0;
    HWND hwnd = CreateWindowEx(0, "generator", "generator", WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU, CW_USEDEFAULT, CW_USEDEFAULT, 275, 173, 0, 0, hInst, 0);
    btn = CreateWindowEx(0, "BUTTON", ("Generate"), WS_VISIBLE | WS_CHILD | WS_TABSTOP, 89, 83, 84, 23, hwnd, (HMENU)IDC_BUTTON1, hInst, 0);
    ed1 = CreateWindowEx(0, "EDIT", 0, WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_BORDER | ES_AUTOHSCROLL | ES_NUMBER, 74, 44, 45, 23, hwnd, (HMENU)IDC_EDIT1, hInst, 0);
    ed2 = CreateWindowEx(0, "EDIT", 0, WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_BORDER | ES_AUTOHSCROLL | ES_NUMBER, 158, 44, 48, 23, hwnd, (HMENU)IDC_EDIT2, hInst, 0);
    while (GetMessage (&messages, NULL, 0, 0))
    {
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }
    return messages.wParam;
}
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    long m,n,r;
    char s[64];
    switch (message)
    {
        case WM_CREATE:
            srand(time(NULL));
            break;
        case WM_COMMAND:
            switch (LOWORD(wParam))
            {
                case IDC_BUTTON1:
                    GetWindowText(ed1,s,64);
                    m=atol(s);
                    GetWindowText(ed2,s,64);
                    n=atol(s);
                    r=rand()%(n-m)+m;
                    itoa(r,s,10);
                    MessageBox(hwnd,s,"generator",MB_OK);
                    break;
            }
            break;
        case WM_DESTROY:
            PostQuitMessage (0);
            break;
        default:
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
    return 0;
}
вот есть код, но он без классов и методов, но визуализирован так, как надо. помогите пожалуйста код, указанный выше, визуализировать так же
0
tomaticus
47 / 47 / 2
Регистрация: 02.01.2011
Сообщений: 505
21.06.2012, 11:46 #26
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
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
void SimpleRandDemo( int n )
{
   // Print n random numbers.
   int i;
   for( i = 0; i < n; i++ )
      printf( "  %6d\n", rand() );
}
 
void RangedRandDemo( int range_min, int range_max, int n )
{
   // Generate random numbers in the half-closed interval
   // [range_min, range_max). In other words,
   // range_min <= random number < range_max
   int i;
   for ( i = 0; i < n; i++ )
   {
      int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min;
      printf( "  %6d\n", u);
   }
}
 
int main( void )
{
   // Seed the random-number generator with the current time so that
   // the numbers will be different every time we run.
   srand( (unsigned)time( NULL ) );
 
   SimpleRandDemo( 10 );
   printf("\n");
   RangedRandDemo( -100, 100, 10 );
}
0
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
21.06.2012, 11:54  [ТС] #27
Цитата Сообщение от tomaticus Посмотреть сообщение
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
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
void SimpleRandDemo( int n )
{
   // Print n random numbers.
   int i;
   for( i = 0; i < n; i++ )
      printf( "  %6d\n", rand() );
}
 
void RangedRandDemo( int range_min, int range_max, int n )
{
   // Generate random numbers in the half-closed interval
   // [range_min, range_max). In other words,
   // range_min <= random number < range_max
   int i;
   for ( i = 0; i < n; i++ )
   {
      int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min;
      printf( "  %6d\n", u);
   }
}
 
int main( void )
{
   // Seed the random-number generator with the current time so that
   // the numbers will be different every time we run.
   srand( (unsigned)time( NULL ) );
 
   SimpleRandDemo( 10 );
   printf("\n");
   RangedRandDemo( -100, 100, 10 );
}
C++ (Qt)
1
2
            + range_min;
      printf( "  %6d\n", u);
здесь ошибка... и мне нужно с классами и методами
0
tomaticus
47 / 47 / 2
Регистрация: 02.01.2011
Сообщений: 505
21.06.2012, 11:55 #28
C++
1
int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min) + range_min;
на одной строке должно быть. чем вас не устраивают функции?
0
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
21.06.2012, 18:24  [ТС] #29
Цитата Сообщение от tomaticus Посмотреть сообщение
C++
1
int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min) + range_min;
на одной строке должно быть. чем вас не устраивают функции?
у меня задание такое... через классы сделать

Добавлено через 5 часов 42 минуты
поможет кто-нибудь?
0
21.06.2012, 18:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2012, 18:24
Привет! Вот еще темы с ответами:

Генератор случайных чисел - C++
Есть функция, генерирующая случайные целые числа с помощью линейного конгруэнтного метода. Нужно сделать частотный побитовый тест для...

Генератор случайных чисел - C++
Как написать генератор случайных (пусть и псевдо) чисел, выдающий на выходе целые случайные числа от 1 до 10 и в кол-ве 10-и и без...

Генератор случайных чисел - C++
Здравствуйте, написал вот такой генератор псевдослучайных чисел в диапазоне 0-99 и задался вопросом о его скорости. Я считываю время...

Генератор случайных чисел - C++
Добрый день!У меня есть код #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstring&gt; #include &lt;ctime&gt; char randSym() { ...


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

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

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