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

Массив случайных неповторяющихся чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построить график http://www.cyberforum.ru/cpp-beginners/thread604425.html
Для функции Y = f(X), график которой приведен в Вашем индивидуальном задании, вывести на экран значения Y для Х = 0, 0.25, 0.5, ... 19.75.
C++ Реализация многоуровневого меню Всем доброго дня! Помогите с кодом меню, проблема в том что нажимая клавишу 1 он опять же выкидывает меню и тоже самое при нажатие 0, то есть при нажатие 1 он должен вводить данные, что не делает а... http://www.cyberforum.ru/cpp-beginners/thread604423.html
C++ Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки
C++ Ошибки в коде
#include <stdio.h> #include <conio.h> #include <string.h> // strlen #include <dos.h> // delay #include <winsock2.h> // параметры передачи #define TONE 100 // частота сигнала (гц) #define...
C++ Вычисление недостающего первого значения с учетом динамики температуры. http://www.cyberforum.ru/cpp-beginners/thread604383.html
Задача на применение функций: Синоптик должен измерять темперетару воздуха за окном раз в час на протяжении 6 часов. В результате в его журнале должны появится 7 отчетов. Он опаздывает на час....
C++ Перевести код из c++ в delphi Умоляю помогите,очень нужно(( /**************************************************************************** * * * File : dllmain.c * * * * Purpose : Generic Win32 Dynamic Link Library (DLL). *... подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1966 / 1459 / 120
Регистрация: 29.05.2011
Сообщений: 3,018
13.06.2012, 19:20
Если диапазон чисел не сильно больше необходимого количества чисел, или равен ему, то может оказаться проще выкинуть лишние и перемешать оставшиеся. Например так:
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
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
 
int main()
{
    int const RANDOM_RANGE = 20; // числа от 0 до RANDOM_RANGE-1
    int const ARRAY_SIZE = 10; // количество чисел
    srand(time(NULL));
    std::vector<int> array(RANDOM_RANGE);
 
    // формируем массив из всех чисел
    for (int i = 0; i < RANDOM_RANGE; ++i)
        array[i] = i;
 
    // случайным образом удаляем лишние
    for (int i = RANDOM_RANGE; i > ARRAY_SIZE; --i)
        std::swap(array[i-1], array[rand() % i]);
    array.resize(ARRAY_SIZE);
 
    // перемешиваем оставшиеся
    for (int i = 0; i < ARRAY_SIZE; ++i)
        std::swap(array[i], array[rand() % ARRAY_SIZE]);
 
    for (int i = 0; i < ARRAY_SIZE; ++i)
        std::cout << array[i] << ' ';
    std::cout << std::endl;
 
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru