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

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

Войти
Регистрация
Восстановить пароль
 
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
#1

генерация случайных чисел - C++

16.10.2013, 21:20. Просмотров 615. Ответов 7
Метки нет (Все метки)

Написать программу, которая должна обеспечить исчисление количества повторений заданного числа по модулю 100. Характеристика должна быть исчислена 10 раз подряд и каждый результат следует вывести на консоль. Длину последовательности случайных чисел должен задавать пользователь.
Напишите хоть по пунктам как делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 21:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос генерация случайных чисел (C++):

Генерация случайных чисел - C++
Мне нужно заполнить множество матриц числами 0 или 1. Для этого использую функцию rand. Но мне необходима совсем случайная...

Генерация случайных чисел - C++
Вопрос такой: возможно ли при помощи функции random, устроить случайную генерацию одного из двух чисел? Например мне нужны числа 2 и 4.

Генерация случайных чисел С++ - C++
сгенерировать вещественные числа от 0 до 1(например,0,1;0,2;1,0; и т.д.) в этом случае выводит только 0 и 1: #include<stdio.h> ...

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

Генерация случайных чисел - C++
Как в С сгенирировать последовательность случайных чисел от x до y.Например от 1 до 100.

Генерация случайных чисел - C++
Здравствуйте, появилась такая проблема: при генерации случайного числа функцией rand(); мне нужно сгенерировать 5 случайных чисел, но...

7
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
16.10.2013, 21:34 #2
Что насчет диапазона?
0
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
16.10.2013, 21:43  [ТС] #3
Цитата Сообщение от MrGluck Посмотреть сообщение
Что насчет диапазона?
в задании не указано! может задается пользователем!
0
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
16.10.2013, 22:00 #4
Цитата Сообщение от yurets17 Посмотреть сообщение
в задании не указано!
Возьмем весь диапазон int
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
#include <iostream>
#include <random>
#include <functional>
 
int main()
{
    const int val = 13, M = 10; // заданное число, количество подсчетов
    int N, counter;             // количество повторений, счетчик
    std::mt19937 gen { std::random_device()() };
    std::uniform_int_distribution<> uid;
    auto roll = std::bind(uid, gen);
    std::cout << "The number of repetitions: ";
    std::cin >> N;
    for (int i=0; i < M; i++)
    {
        counter = 0;
        std::cout << std::endl << i+1 << ": ";
        for (int j=0; j < N; j++)
        {
            int x = roll(); // генерируем СЧ
            std::cout << x << " ";
            if (x % 100 == val)
                counter++;
        }
        std::cout << "\nNumber of repeats " << val << " mod 100 = " << counter;
    }
}
1
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
16.10.2013, 22:10  [ТС] #5
Цитата Сообщение от MrGluck Посмотреть сообщение
Возьмем весь диапазон int
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
#include <iostream>
#include <random>
#include <functional>
 
int main()
{
    const int val = 13, M = 10; // заданное число, количество подсчетов
    int N, counter;             // количество повторений, счетчик
    std::mt19937 gen { std::random_device()() };
    std::uniform_int_distribution<> uid;
    auto roll = std::bind(uid, gen);
    std::cout << "The number of repetitions: ";
    std::cin >> N;
    for (int i=0; i < M; i++)
    {
        counter = 0;
        std::cout << std::endl << i+1 << ": ";
        for (int j=0; j < N; j++)
        {
            int x = roll(); // генерируем СЧ
            std::cout << x << " ";
            if (x % 100 == val)
                counter++;
        }
        std::cout << "\nNumber of repeats " << val << " mod 100 = " << counter;
    }
}
а что значит везде вот это std:: ?? я просто пишу на С++ в QT Creator и такого раньше не встречал

Добавлено через 4 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
Возьмем весь диапазон int
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
#include <iostream>
#include <random>
#include <functional>
 
int main()
{
    const int val = 13, M = 10; // заданное число, количество подсчетов
    int N, counter;             // количество повторений, счетчик
    std::mt19937 gen { std::random_device()() };
    std::uniform_int_distribution<> uid;
    auto roll = std::bind(uid, gen);
    std::cout << "The number of repetitions: ";
    std::cin >> N;
    for (int i=0; i < M; i++)
    {
        counter = 0;
        std::cout << std::endl << i+1 << ": ";
        for (int j=0; j < N; j++)
        {
            int x = roll(); // генерируем СЧ
            std::cout << x << " ";
            if (x % 100 == val)
                counter++;
        }
        std::cout << "\nNumber of repeats " << val << " mod 100 = " << counter;
    }
}
И еще мне интересна вот эта строчка mt19937 gen {random_device()() };
0
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
16.10.2013, 22:17 #6
Цитата Сообщение от yurets17 Посмотреть сообщение
а что значит везде вот это std:: ??
это элемент языка С++, пространство имен. Я пишу для всех функций полное название, а не кидаю все в стандартное пространство std.

Цитата Сообщение от yurets17 Посмотреть сообщение
mt19937 gen {random_device()() };
Создаем одну из разновидностей Вихря Мерсенна, псевдо-генератора СЧ и инициализируем его результатом выполнения оператора () от генератора с лучшей энтропией, а точнее генератора недетерменированных СЧ std::random_device.
1
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
16.10.2013, 22:29  [ТС] #7
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <iostream>
#include <cmath>
#include <windows.h>
#include <cstdlib>
#include "QTime"
#include <conio.h>
#include <random>
#include <functional>
void tabFunc();
void intChain();
void rndChain();
using namespace std;
int main()
{char ch;
 int n;
    do
    {system("cls");
        SetConsoleTitleA(" Використання циклу for");
        cout<<" Варiанти використання циклу for:\n";
        cout<<" 1. Табулювання функцiї\n";
        cout<<" 2. Обробка послiдовностi цiлих чисел\n";
        cout<<" 3. Обробка послiдовностi випадкових чисел\n";
        cout<<" Виберiть номер варiанту ";
        cin>>ch;
        switch(ch)
        { case '1':tabFunc(); break;
          case '2':intChain(); break;
          case '3':rndChain(); break;
        }
        cout<<"\nДля продовження натиснiть будь-яку клавiшу...";
        getch();
    }while (true);
    return 0;
}
void tabFunc()
{system("cls");
    SetConsoleTitleA(" Табулювання функцiї g=a*pow(e,-b*x) - b*x*pow(e,-a) * sin(c*x)/c");
    cout<<" Введiть числа для розрахунку формули:\n";
    float a, b, c, e;
    cout<<" a = "; cin>>a;
    cout<<" b = "; cin>>b;
    cout<<" c = "; cin>>c;
    cout<<" e = "; cin>>e;
    cout<<" Введiть початкове i кiнечне значення аргументу\n";
    float x0, xMax; cin>>x0>>xMax;
    cout<<" Введiть крок змiни аргументу\n";
    float step; cin>>step;
    float x;
    float g;
    int k;
    k=ceil((xMax-x0)/step);
    for(int i=0; i<=k; i++)
    {x=x0+step*i;
        g=a*pow(e,-b*x) - b*x*pow(e,-a) * sin(c*x)/c;
        cout.width(5); cout.precision(3); cout<<x;
        cout.width(15); cout.precision(4); cout<<g<<"\n";
    }
}
int promizhna(int n)
{ int sum=0;
    for (int i=2; (i<=n/2); i++)
    { if (n%i==0)
            sum+=i;
    }
    return sum;
}
void intChain()
{system("cls");
    cout<<"Введiть початкове i кiнечне значення промiжку\n";
    int n1,n2; cin>>n1>>n2;
    for(n1;n1<=n2;n1++)
    { cout.width(5); cout.precision(3);
      cout<<n1;
      cout.width(25); cout.precision(5);
      cout<<promizhna(n1)<<"\n"; }
}
void rndChain()
{
      const int val = 13, M = 10; // заданное число, количество подсчетов
      int N, counter;             // количество повторений, счетчик
      std::mt19937 gen { std::random_device()() };
      std::uniform_int_distribution<> uid;
      auto roll = std::bind(uid, gen);
      std::cout << "The number of repetitions: ";
      std::cin >> N;
      for (int i=0; i < M; i++)
      {
          counter = 0;
          std::cout << std::endl << i+1 << ": ";
          for (int j=0; j < N; j++)
          {
              int x = roll(); // генерируем СЧ
              std::cout << x << " ";
              if (x % 100 == val)
                  counter++;
          }
          std::cout << "\nNumber of repeats " << val << " mod 100 = " << counter;
      }
  }
очень много ошибок определяет! обьясни пожалуйста, если можно, почему?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
16.10.2013, 23:36 #8
Цитата Сообщение от yurets17 Посмотреть сообщение
очень много ошибок определяет!
самих ошибок нет.
Хочу заметить, что мой код использует стандарт С++11, который скорее всего не поддерживается вашим компилятором.
0
16.10.2013, 23:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2013, 23:36
Привет! Вот еще темы с ответами:

Генерация случайных чисел - C++
Доброго времени суток ! Как генерировать случайное число например в диапазоне от 1 до 52 а потом исключить это число, и генерировать...

генерация случайных чисел - C++
полазил по форумам, понял что лучшей конструкцией для ввода случайных чисел является: srand(time(NULL)); ... int r =...

Генерация случайных чисел - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; using namespace std; int main ()...

Генерация случайных чисел - C++
Здравствуйте! Мне нужно сгенерировать случайные числа, много и за секунду или быстрей. Можно ли использовать время компьютера с...


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

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

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