Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Maratovich
13 / 17 / 6
Регистрация: 05.09.2012
Сообщений: 210
1

Генерация случайных чисел

14.01.2013, 22:05. Просмотров 1032. Ответов 6
Метки нет (Все метки)

Доброго времени суток !
Как генерировать случайное число например в диапазоне от 1 до 52 а потом исключить это число, и генерировать снова но при этом не учитывать старое, а искать новое в этом же диапазоне.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 22:05
Ответы с готовыми решениями:

Генерация случайных чисел
Здравствуйте, появилась такая проблема: при генерации случайного числа...

Генерация случайных чисел
Мне нужно заполнить множество матриц числами 0 или 1. Для этого использую...

Генерация случайных чисел
#include <stdio.h> #include <conio.h> #include <clocale> #include <time.h>...

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

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

6
TrueBit
96 / 96 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 22:20 2
Генерация двух разных целочисленных значений из промежутка [1,52]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    srand((unsigned)time(NULL));
    int old_num=(1+rand()%52);
    int new_num;
    do {
        new_num=(1+rand()%52);
    } while(new_num==old_num);
    cout << old_num << " " << new_num;
    getchar();
}
Генерация 10 разных, так, что соседние числа не повторяются(промежуток [1,52]):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    srand((unsigned)time(NULL));
    int n=10;
    int old_num=(1+rand()%52);
    int new_num;
    for(int i=0;i<n;i++) {
        do {
            new_num=(1+rand()%52);
        } while(new_num==old_num);
        cout << new_num << " ";
        old_num=new_num;
    }
    getchar();
}
1
Croessmah
++Ͻ
14611 / 8365 / 1576
Регистрация: 27.09.2012
Сообщений: 20,561
Записей в блоге: 2
Завершенные тесты: 1
14.01.2013, 22:21 3
Цитата Сообщение от Maratovich Посмотреть сообщение
Как генерировать случайное число например в диапазоне от 1 до 52 а потом исключить это число, и генерировать снова но при этом не учитывать старое, а искать новое в этом же диапазоне.
Способы есть различные. Скорее зависит от конечной задачи, для которой это нужно.
1
SummerRain
327 / 326 / 92
Регистрация: 16.12.2012
Сообщений: 544
14.01.2013, 22:24 4
Генерация случайных неповторяющихся чисел (диапазон задаём через N)
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#define N 52
 
using namespace std;
 
void main()
{
    srand((unsigned)time(NULL));
    int mass[N];
 
    for (int i = 0; i < N; ++i)
    {
        mass[i] = rand() % N + 1;
        for (int j = 0; j < i; ++j)
        {       
            if (mass[i] == mass[j])
            {
                --i;
                break;
            }
        }       
    }
 
    for (int i = 0; i < N; ++i)
    {
        cout << mass[i] << endl;
    }
 
    system ("pause");
}
1
Maratovich
13 / 17 / 6
Регистрация: 05.09.2012
Сообщений: 210
14.01.2013, 22:33  [ТС] 5
Спасибо большое вот сижу думаю, почему сам до этого не догадался...
0
Croessmah
++Ͻ
14611 / 8365 / 1576
Регистрация: 27.09.2012
Сообщений: 20,561
Записей в блоге: 2
Завершенные тесты: 1
14.01.2013, 22:46 6
Цитата Сообщение от SummerRain Посмотреть сообщение
Генерация случайных неповторяющихся чисел (диапазон задаём через N)
может привести к зависанию, если будут генерироваться числа, которые уже есть в массиве

Добавлено через 1 минуту
Цитата Сообщение от Maratovich Посмотреть сообщение
Спасибо большое вот сижу думаю, почему сам до этого не догадался...
Если Вам нужно просто генерировать все числа из диапазона, то можно заполнить необходимыми числами массив и потом перемешать его в случайном порядке:
C++
1
std::random_shuffle
0
MrGluck
Модератор
Эксперт CЭксперт С++
8086 / 4939 / 1431
Регистрация: 29.11.2010
Сообщений: 13,395
14.01.2013, 23:30 7
std::iota
std::random_shuffle
0
14.01.2013, 23:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 23:30

генерация случайных чисел
полазил по форумам, понял что лучшей конструкцией для ввода случайных чисел...

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

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


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

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

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