Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
||||||
1 | ||||||
Заполнение массива числами от 1 до 25 без повторений04.08.2010, 15:41. Показов 23005. Ответов 24
Метки нет (Все метки)
0
|
04.08.2010, 15:41 | |
Ответы с готовыми решениями:
24
Заполнение массива рандомными числами без повторений Заполнение массива случайными числами без повторений Рекурсия: заполнение одномерного массива целыми случайными числами без повторений Заполнение квадрата последовательными числами без повторений |
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
04.08.2010, 15:45 | 2 |
https://www.cyberforum.ru/cpp-... 44753.html
В первом сообщении найдете. Там есть под катом, генерация массива случайных чисел без повторения
1
|
Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
|
04.08.2010, 15:54 [ТС] | 3 |
с диапазоном разобрался, а вот с повторением не очень
0
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
||||||
04.08.2010, 16:03 | 4 | |||||
1
|
Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
|
04.08.2010, 16:43 [ТС] | 5 |
nikkka, с этим уже разобрался, но немного другим способом, а как убрать повторения
Добавлено через 37 минут а можно же по идее сделать цикл, в котором проверяются все предыдущие числа, и если такое число уже есть, то всё сначала...или нет?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
04.08.2010, 16:49 | 6 | |||||
Я вот до такого додумался:
Такой цикл теоретически может длиться бесконечно.
1
|
Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
|
04.08.2010, 16:49 [ТС] | 7 |
спасибо) а нельзя ли как нибудь попроще?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
04.08.2010, 16:52 | 8 |
А что непонятного? Если что, то я могу объяснить алгоритм. Он в самом деле довольно простой
0
|
Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
||||||||||||||||
04.08.2010, 16:57 [ТС] | 9 | |||||||||||||||
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
04.08.2010, 17:02 | 10 |
RoY_Mu$T@nG, Читайте STL.
1
|
Заблокирован
|
|
04.08.2010, 17:07 | 12 |
проинициализируй массив от 1 до 25 попорядку, а потом переставляй два числа случайным образом. 50шагов должно хватить
1
|
Модератор
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,749
|
||||||
04.08.2010, 17:10 | 13 | |||||
2
|
Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
|
04.08.2010, 17:14 [ТС] | 14 |
а что такое итератор х_х
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||||||||||
04.08.2010, 17:16 | 15 | ||||||||||
algorithm - нужна для функции generate.
iomanip - для форматирования вывода с помощью манипуляторов std::left, std::setw() Алгоритм генерирует значения для заполнения вектора. Для заполнения используется лямбда-функция (анонимная функция) [&]() { return var++; }, которая при каждом вызове возвращает возрастающее с шагом в 1 значение var. Вместо этого, можно было бы определить функцию
Можно также вместо generate написать:
Вектор rnd инициализирован числами от 1 до 25. В цикле мы получаем псевдослучайное число от 0 до (размер вектора - 1), которое является порядковым номером очередного элемента вектора. Прибавляя к начальному итератору вектора (можно считать, что это указатель на первый элемент вектора) этот номер, мы получаем итератор (указатель) на очередной элемент вектора. После мы присваиваем элемент, на который указывает итератор, после чего удаляем этот элемент. Таким образом, мы случайным образом распределяем элементы вектора между элементами матрицы. Добавлено через 1 минуту Можно для простоты считать, что это указатель.
1
|
Light Knight
106 / 29 / 5
Регистрация: 03.06.2010
Сообщений: 361
|
|
04.08.2010, 17:20 [ТС] | 16 |
всё понятно, спасибо)
0
|
Nameless One
|
04.08.2010, 17:23
#17
|
Не по теме: easybudda, как все оказалось просто...
0
|
0 / 0 / 0
Регистрация: 03.08.2010
Сообщений: 7
|
||||||
04.08.2010, 17:26 | 18 | |||||
Вот как-то так.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
04.08.2010, 17:40 | 19 | |||||
Переделано с std::random_shuffle
0
|
04.08.2010, 17:46 | 20 | ||||||||||
Nameless One, я только не понял зачем здесь еще и вектор?
1
|
04.08.2010, 17:46 | |
04.08.2010, 17:46 | |
Помогаю со студенческими работами здесь
20
Заполнение элементов вектора рандомными числами без повторений Заполнение массива случайными значениями без повторений Заполнение массива случайными числами без повтора Заполнение массива случайными числами, но без нулей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |