Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 0
Регистрация: 03.06.2019
Сообщений: 64
1

Все числовые перестановки для вестора, содержащий целые числа

06.11.2019, 23:59. Показов 1079. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, улыбнитесь=), если еще этого не сделали.
У меня тут вот какая задачка. Дан вектор целых чисел, назовем его range. Заполним его любыми числами, пусть, например, такими:
{1, 2, 3, 4, 5};

Из самого начала его перестановочный счетчик(сейчас обьясню) равен нулю. Что это значит? Этот счетчик - номер перестановки. Например, если счетчик будет равен 1, то тогда перестановка должна выглядеть так:

{1, 2, 3, 5, 4};
Если 2, то:
{1, 2, 4, 3, 5};
Ну а если 3, то:
{1, 2, 4, 5, 3};
...И тд.

Тоесть, задача сводиться к написанию функции, которая принимает копию вектора range и номер перестановки(наш счетчик).
Функция будет возвращать уже переставленный вектор с номером перестановки, указанным в параметрах.

Выглядеть должно как-то так:

C++
1
2
3
4
vector<int>& permutation(vector<int> rangecopy, int n){
//rangecopy обробатывается
return rangecopy;
}
Чем дальше я углубляюсь в циклы, тем все стает более и более запутанным. Памагити
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2019, 23:59
Ответы с готовыми решениями:

Дан текстовый файл, содержащий целые числа. Удалить из него все четные числа
Только начал изучать эту тему. Не знаю как решить , помогите пожалуйста. with open(&quot;task_1.txt&quot;,...

Создать двусвязный список, содержащий целые числа. Удалить все максимальные элементы
Создать двусвязный список, содержащий целые числа. Удалить все максималь* ные элементы. Например,...

Организовать динамический список, содержащий целые числа. Удалить из списка все нулевые элементы
Организовать динамический список, содержащий целые числа. Удалить из списка все нулевые элементы,...

Дан одномерный массив, содержащий целые числа. Использовать доп массивы нельзя. Удалить все элементы, кратные X
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale(LC_ALL,...

3
4817 / 2278 / 287
Регистрация: 01.03.2013
Сообщений: 5,947
Записей в блоге: 28
07.11.2019, 01:41 2
Лучший ответ Сообщение было отмечено NuMeRiC_ как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
typedef std::vector<int> vi_t;
 
int f(int n) { return n ? n*f(n-1) : 1; }
 
vi_t nth_permutation(vi_t v, int n) {
    if (v.empty()) return {};
    int pc = f(v.size()-1);
    int i = n/pc, x = v[i];
    v.erase(v.begin()+i);
    vi_t r = nth_permutation(v, n%pc);
    r.insert(r.begin(), x);
    return r;
}
 
int main() {
    int n; std::cin >> n;
    vi_t v; int t; while(std::cin >> t) v.push_back(t);
    for(auto x : nth_permutation(v, n)) std::cout << x << " ";
}
Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
Всем привет, улыбнитесь=), если еще этого не сделали.

Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
Тоесть
То есть
Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
сводиться
сводится
Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
Чем дальше я углубляюсь в циклы
циклы не нужны
Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
стает
становится
Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
Памагити
Помогите
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
07.11.2019, 08:18 3
Цитата Сообщение от NuMeRiC_ Посмотреть сообщение
C++
1
2
3
4
vector<int>& permutation(vector<int> rangecopy, int n){
    //rangecopy обробатывается
    return rangecopy;//<-- возврат ссылки?
}
Вы уверены, что должно быть именно так???
0
3 / 3 / 0
Регистрация: 03.06.2019
Сообщений: 64
07.11.2019, 10:40  [ТС] 4
Спасибо огромное) Все понял и разобрался!)
0
07.11.2019, 10:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2019, 10:40
Помогаю со студенческими работами здесь

Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно; при этом каждое
Даны целые положительные числа A и B (A &lt; B). Вывести все целые числа от A до B включительно; при...

В порядке убывания напечатать все целые числа из диапазона 1 . 100, которые можно представить в виде., где n, k - целые числа
В порядке убывания напечатать все целые числа из диапазона 1 .. 100, которые можно представить в...

Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно
Даны целые положительные числа A и B (A &lt; B). Вывести все целые числа от A до B включительно; при...

Даны целые числа A и B (A < B). Вывести все целые числа от A до B включительно
Здравствуйте коллеги! Помогите написать код на JAVA: Даны целые числа A и B (A &lt; B). Вывести все...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru