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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
FarStar
Заблокирован
31.01.2013, 14:52     Генератор случайных чисел #1
Как написать генератор случайных (пусть и псевдо) чисел, выдающий на выходе целые случайные числа от 1 до 10 и в кол-ве 10-и и без повторов. Тоесть надо на выходе получить 10 случайных чисел без повторов от 1-го до 10-и
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 14:52     Генератор случайных чисел
Посмотрите здесь:

C++ Генератор случайных чисел
C++ Генератор случайных чисел
C++ Генератор случайных чисел
C++ Генератор случайных чисел (с UI)
Генератор случайных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
31.01.2013, 15:05     Генератор случайных чисел #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <ctime>
#include <iostream>
using namespace std;
int main()
{
    const int k=10;
    int m[k];
    srand (time(NULL));
    for(int i=0; i<k; i++)
    {
        a: m[i]=1+rand()%k;
        for (int j=0; j<i; j++)
            if (m[j]==m[i]) goto a; 
    }
    for(int i=0; i<k; i++)
    cout << m[i]<<" ";
    cin.get();
    return 0;
}
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
31.01.2013, 15:06     Генератор случайных чисел #3
Взять массив ( вектор ) из 10 чисел от 1 до 10, и просто его перемешать случайным образом.
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
31.01.2013, 15:08     Генератор случайных чисел #4
в 99.9% случаев такое не получится. А сам генератор :

Zi=(a * (Zi-1)+c)(mod m)

Где m – модуль (деление по модулю означает взятие остатка от деления на m), a – множитель, с – приращение и Z0 – начальное значение являются неотрицательными целыми числами.
KAIFAT123
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 28
31.01.2013, 15:52     Генератор случайных чисел #5
как вариант перемешивание массива.

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
#include "stdafx.h"
#include <iostream>
 
using namespace std;  
void swap(int& a, int& b)
{
 int c = a;
 a = b;
 b = c;
}
void main()
{
 const int n = 10; // количество неповторяющихся чисел
 int gen[n];
 for(int i = 0; i < n; ++i)
  gen[i] = i+1; // заполняем массив числами от 1 до 10
 for(int i = 0; i < n; ++i)
 {
  swap(gen[i], gen[rand()%n]);
 }
 for(int i = 0; i < n; ++i)
  cout << gen[i] << " ";
 cout << endl;
 cin.ignore();
}
Yandex
Объявления
31.01.2013, 15:52     Генератор случайных чисел
Ответ Создать тему
Опции темы

Текущее время: 18:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru