0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 4
1

использование random в массивах

05.12.2019, 23:41. Показов 677. Ответов 2

Как из массива данных типа char вывести случайные пары элементов, чтобы те не повторялись?
Уже сделал работающую программу для вывода этих рандомных пар, но они повторяются.
Буду очень благодарен за помощь!

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <time.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    const char* a1[6] = { "ABC","ACB","BCA","BAC","CAB","CBA" };
 
    srand(time(nullptr));
 
    int c = 6;
    for (int i = 1; i < 5; i++)
    {
        cout << a1[rand() % c] << " - " << a1[rand() % c] << endl;
    }
 
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2019, 23:41
Ответы с готовыми решениями:

Random и объекты класса (pseudo random)
Всем привет. Есть класс: typedef unsigned int ui; class Player { private: ui health;

Использование Random
Доброго времени суток. Нужно задать случайное число из промежутка random(5) + 8; Это верно?

Использование оператора random
Помогите пожалуйста, составить программу для вычисления количества элементов массива Y(20,30),...

Builder C++ использование random
b = random(100 * (random(3) -1)); для C++ Builder Подскажите пожалуйтса как отобразить это на...

2
6565 / 4550 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
06.12.2019, 11:35 2
Цитата Сообщение от GeraltLUL Посмотреть сообщение
Как из массива данных типа char вывести случайные пары элементов, чтобы те не повторялись?
Чтобы не было пар с одинаковыми элементами, или чтоб пары не повторялись.
В первом случае сделай
C++
1
2
3
        const int idx1 = rand() % c;
        const int idx2 = ((rand() % c) + idx1) % c;
        cout << a1[idx1] << " - " << a1[idx2] << endl;
Чтобы не повторялись пары, тебе нужно их запоминать. В твоём случае, достаточно будет воспользоваться
C++
1
std::set<std::pair<const char *, const char *>>
0
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
06.12.2019, 12:00 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
#include <time.h> 
using namespace std;
int main() {
    setlocale(LC_ALL, "Rus");
    char a1[6] = { 'A','B','C','D','E','F' };    
    int b1, b2;
    srand(time(nullptr));
    int c = 6;
    for (int i = 1; i < 5; i++) {
        do {
            b1 = rand() % c; 
            b2 = rand() % c;
        } while (b1 == b2);
        cout << a1[b1] << " - " << a1[b2] << endl;
    }
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2019, 12:00
Помогаю со студенческими работами здесь

Использование Random. Синтаксис, особенности
Приветствую. Вот столкнулся с интересной проблемой. Прочитал некоторое количество литературы и не...

Использование памяти в статических массивах.
Допустим, мы объявили массив статический из огромного числа элементов (допустим, 134217728). Для...

Использование функции random в массиве из строк.
Задан массив из строк, нужно чтобы программа случайно выбирала слово и выводила столько...

Использование Random при работе с массивами
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru