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

Сгенерировать массив без повторения элементов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Графика в DOS. Изобразить градуировку сосудов http://www.cyberforum.ru/cpp-beginners/thread1158124.html
Здравствуйте, прошу помочь, вот задание: Написать программу градуированы сосудов для отмеривания воды. Имеются не отградуированные сосуды 5-ти и 3-х литровый. Нужно отмерить четыре литра жидкости. ...
C++ Описать произвольный класс, дополнительно содержащий функции объединения и пересечения множеств Описать произвольный класс, дополнительно содержащий функции объединения и пересечения множеств. Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread1158114.html
C++ Объясните код, пожалуйста, файловый поток
#include <iostream> #include <fstream> #include <string> using namespace std; void main() { setlocale(LC_ALL, ""); ifstream file("file.txt");
Дана матрица размером NxM. Найти x(1)*x(N) + x(2)*x(N-1) + ... + x(N)*x(1) C++
Дана матрица размером NxM. Найти x(1)*x(N) + x(2)*x(N-1) + ... + x(N) * x(1), где x(i) - разность между максимальным и минимальным элементом i-й строки. Поиск максимального и минимального элементов...
C++ Система нелинейных уравнений http://www.cyberforum.ru/cpp-beginners/thread1158099.html
Добрый день, помогите решить систему m*x^2+m*y^2+m*z^2-1=0 a1*x + a2*y + a3*z=0 b1*x + b2*y + b3*z=0 где m, a1-a3, b1-b3 известны
C++ Не могу понять классы. Как их наполнить данными? Добрый день, форумчане. Пытаюсь изучить классы в ООП, и не могу понять, как с ними работать. Помогите разобраться, к примеру, есть два класса, но как их наполнить данными, ввести водителей, ввести... подробнее

Показать сообщение отдельно
RQdan
65 / 65 / 17
Регистрация: 26.10.2013
Сообщений: 198
26.04.2014, 23:33
Ввод и вывод уже не имеет смысла делать - все расписали выше. А с генерацией случайных неповторяющихся чисел могу вставить свои пять копеек.
C++
1
2
3
4
5
6
7
8
9
10
int range=g2-g1+1;
int r;
for(int i=0;i<range;i++) masEl[i]=i+g1;//заносим все значения отрезка в массив
for(int i=0;i<m;i++)
{
  r=rand()%range;//получаем значение элемента массива
  mas[i]=masEl[r];//в итоговый массив записываем новый элемент
  masEl[r]=masEl[range-1];//на место выбранного значения элемента массива значений отрезка вставляем значение последнего элемента 
  range--;//уменьшаем значение выборки - таким образом ранее выпавшие элементы больше не попадут в выборку
}
Добавляем еще один массив masEl для всех значений отрезка g1-g2, но теперь не надо каждый раз проверять новое полученое значение элемента со всеми предыдущими. Скорость обработки возрастает на порядок.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru