Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
3 / 3 / 3
Регистрация: 25.09.2016
Сообщений: 40
1

Генерация футбольных команд

18.03.2017, 21:15. Просмотров 1147. Ответов 6
Метки c++ (Все метки)

Доброго времени суток!

Считываем команды из файла, например

Зенит
Спартак
Анжи
Барселона

затем нужно сделать вывод пар играющих команд (Зенит-Анжи и тд).
Важно, чтобы Все это происходило случайным образом, т.е и чтобы команды еще и не повторялись.
Очень долго ломал голову
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2017, 21:15
Ответы с готовыми решениями:

Написать программу результатов матчей футбольных команд (Используя контейнер map)
Помогите пожалуйста, никогда не имела дела с контейнерами((( Задание: футбольные команды (через...

Таблица футбольных команд: Сформировать показатели команд заданного континента
Есть вот такое задание. Рейтинговая таблица футбольных сборных содержит следующие сведения:...

Даны список футбольных команд высшей лиги России и количество очков, набранных каждой командной в чемпионате России. Известно, что нет команд с равным
Даны список футбольных команд высшей лиги России и количество очков, набранных каждой командной в...

Расписание матчей футбольных команд
Пишу маленькую игрушку. Вроде футбольная... В общем дается массив с именами (или первичными...

6
56 / 56 / 31
Регистрация: 24.10.2016
Сообщений: 186
18.03.2017, 21:35 2
Цитата Сообщение от EvgeniyKoval Посмотреть сообщение
Важно, чтобы Все это происходило случайным образом, т.е и чтобы команды еще и не повторялись
Здесь напрашивается не случайный перебор, а перебор комманд по очереди.
0
3 / 3 / 3
Регистрация: 25.09.2016
Сообщений: 40
18.03.2017, 21:50  [ТС] 3
Можете продемонстрировать?
0
Эксперт С++
1582 / 912 / 777
Регистрация: 06.02.2016
Сообщений: 2,394
Записей в блоге: 28
18.03.2017, 23:26 4
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
32
33
34
35
#include <iostream>
#include <string>
#include <fstream>
#include <set>
#include <ctime>
#include <random>
#include <iterator>
#include <vector>
using namespace std;
constexpr unsigned long factorial(int n) {
    return n == 0 ? 1 : n == 1 ? n : n * factorial(n - 1);
}
constexpr  unsigned long cnm(int n,int m) {
    return factorial(n)/(factorial(m)*factorial(n-m));
}
int main() {
    setlocale(LC_ALL,"RUS");
    ifstream ff("tr.txt");
    vector<string>v {istream_iterator<string>(ff),istream_iterator<string>()};
    mt19937 gen(time(nullptr));
    uniform_int_distribution<> dist(0,v.size()-1);
    set<string>sal;
    int n=1;
    while(n<=cnm(v.size(),2)) {
        string s1=*(v.begin()+dist(gen));
        string s2=*(v.begin()+dist(gen));
        if(s1!=s2 && sal.find(s1+s2)==sal.end() && sal.find(s2+s1)==sal.end()) {
            cout<<s1<<" "<<s2<<endl;
            sal.insert(s1+s2);
            sal.insert(s2+s1);
            ++n;
        }
    }
    return 0;
}
0
3 / 3 / 3
Регистрация: 25.09.2016
Сообщений: 40
18.03.2017, 23:35  [ТС] 5
Поясните пожалуйста строчки с 19 по 31
0
56 / 56 / 31
Регистрация: 24.10.2016
Сообщений: 186
19.03.2017, 00:53 6
Цитата Сообщение от EvgeniyKoval Посмотреть сообщение
Можете продемонстрировать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
#include <iostream>
#include <clocale>
 
using namespace std;
 
wchar_t *commands[] = {
    L"Зенит",
    L"Спартак",
    L"Анжи",
    L"Барселона"
};
 
int main() {
    setlocale(LC_ALL, "");
    for (int i = 0; i  < 4; i++) {
        for (int j = 0; j < 4; j++)
           wcout << commands[i] << "-" << commands[j] << endl;
    }
}
0
1178 / 695 / 164
Регистрация: 05.12.2015
Сообщений: 2,014
19.03.2017, 02:57 7
Peoples, Зачем?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <random>
#include <algorithm>
#include <vector>
#include <string>
 
int main()
{
    std::locale::global(std::locale(".1251"));
 
    std::vector<std::string> vec = {
        "Зенит",
        "Спартак",
        "Анжи",
        "Барселона"
    };
 
    std::shuffle(vec.begin(), vec.end(), std::default_random_engine(std::random_device{}()));
 
    for (int i = 0; i < vec.size() - 1; i += 2)
        std::cout << vec[i] << " - " << vec[i + 1] <<std::endl;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2017, 02:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сортировка футбольных команд по рейтингу
я ввожу название футбольной команды и рейтинг, мне над чтобы сортировало по рейтингу, а потом уже...

Маркировка футбольных команд в списке уникальным номером
Имеется столбец названий команд. Как сделать так, чтобы напротив каждой команды в соседней ячейке...

Даны список футбольных команд высшей лиги России
Помогите пожалуйста создать приложение: Даны список футбольных команд высшей лиги России и...

Определить количество футбольных команд, что выиграли больше половины матчей
или может в таком направление проще будет Sub Main() Dim i, j, k, n, s As Integer ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.