Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 21.11.2017, 17:30   #1
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
Вопрос код генератора фраз(дописать длину)

Здравствуйте, нашел код который из слов генерирует некое предложение.
если запустить сейчас код, он будет выводить предложения из 3 слов, мне нужно что бы при увеличении количества слов в std::vector<std::string> seq{ "abc", "def", "ghi" };, длина выводимых слов осталась 3, но при этом что бы комбинировала правильно и без ошибок.

Код:
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <iostream>
#include <iomanip>
 
int main()
{
    std::vector<std::string> seq{ "abc", "def",  "ghi" };
 
    std::set< std::vector<std::string> > unique_permutations;
 
    do unique_permutations.emplace(seq.begin(), seq.end());
    while (std::next_permutation(seq.begin(), seq.end()));
 
    for (const auto& seq : unique_permutations)
    {
        static int n = 0;
        std::cout << std::setw(3) << ++n << ". ";
        for (const auto& str : seq) std::cout << str << ' ';
        std::cout << '\n';
    }
}
DarkJoker вне форума Ответить с цитированием
Старый 21.11.2017, 17:44   #2
SerEngine
Форумчанин
 
Регистрация: 28.10.2017
Сообщений: 101
По умолчанию

Тебе путь к разделу Фриланс.
Либо сам делай либо плати.

Запомни: решите! = сделайте за меня

Я вообще не понял что ты хочешь.
Нужно чтобы слова по 3 генерировались?
SerEngine вне форума Ответить с цитированием
Старый 21.11.2017, 17:50   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от SerEngine Посмотреть сообщение
Нужно чтобы слова по 3 генерировались?
скорее всего.

у него (см. вики) "перестановка"
Цитата:
Перестановкой из n элементов (например чисел 1,2,…,n) называется всякий упорядоченный набор из этих элементов. Перестановка также является размещением из n элементов по n.
а ему нужно "размещение"
Цитата:
Размещением из n элементов по k называется упорядоченный набор из k различных элементов некоторого n-элементного множества.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать код программы, вычисляющей длину линии вертикального разреза фигуры KASATKA_AA Паскаль, Turbo Pascal, PascalABC.NET 2 17.09.2018 11:49
В строке после каждого слова дописать ее длину. Dira Помощь студентам 7 24.02.2015 15:54
не получается дописать код С mobydick Общие вопросы C/C++ 7 22.10.2012 09:08
Помогите дописать код.. CodeExpert Помощь студентам 3 09.11.2009 09:38
Дописать код в файл! Trol-100 Общие вопросы C/C++ 8 24.10.2009 16:49


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840