Форум программистов, компьютерный форум CyberForum.ru

Алгоритм генерации перестановок в лексикографическом порядке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нажатие клавиши программно http://www.cyberforum.ru/cpp-beginners/thread682656.html
Здравствуйте, а сложно сделать программу: Нажатие клавиши (прописаной в самом коде) в программе (прописаной в самом кодк) с определённыи интервалом времени. т.е. просто запустить программку и она будет нажимать клавишу каждую минуту . это реально ?
C++ Циклы с условием окончания Помогите пож-ста написать код программы http://www.cyberforum.ru/cpp-beginners/thread682644.html
C++ Оператор For и дроби
Написать при помощи оператора For..... которая считает величину (см. прикрепленный файл) { int n,K; float S,a; n=StrToInt(Edit1->Text); K=1; S=0; for(K<=n;K++;) { a=1/(2*K+2.0)+1/(2*K);
генерация случайных букв C++
как можно с помощью рандома запрограммировать режим генерации случайных букв (для азбуки Морзе)? есть маленькие соображения но думаю они не верны, знаний маловато. Или это вообще делается не так? #include <random> int n={A||a;Z||z}; random() % n; // случайная буква от A(a) до Z(z)
C++ Найти книгу с определенным название http://www.cyberforum.ru/cpp-beginners/thread682608.html
Определить, имеется ли в списке учебников книга с определенным названием. Если да, то вывести фамилию автора, название и год издания.
C++ Обмен местами корня дерева и узла с минимальным значением Вроде несложная задачка но не как не могу найти как реализовать "Обмен местами корня дерева и узла с минимальным значением " в виде отдельной функции подробнее

Показать сообщение отдельно
maksym08
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 10

Алгоритм генерации перестановок в лексикографическом порядке - C++

28.10.2012, 17:49. Просмотров 6429. Ответов 5
Метки (Все метки)

У меня проблема. Нужно перебрать все лексикографически следующие перестановки. Вот мой код. Одна перестановка делается, а дальше я не знаю, как мне повторить все мои действия для этой перестановки и так дали до конечной.
Если нужно, то вот Алгоритм генерации перестановок в лексикографическом порядке:

1. Просматриваем а1, ..., аn с конца до тех пор, пока не попадется ai<ai+1. Если таковых нет, то генерация закончена.
2. Рассматриваем ai+1, ai+2, ..., an. Найдем первый с конца am больший ai и поменяем их местами.
3. ai+1, ai+2, ..., an переставим в порядке возрастания (для этого достаточно её переписать с конца).
4. Печатаем найденную перестановку.
5. Возвращаемся к пункту 1.
Спасибо!!!

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <iomanip>
#include <sstream>
#include <conio.h>
#include <cmath>
using namespace std;
 
int main()
{
    cout.width(62);
    cout<<"Pobudova leksykografichno nastupnoi perestanovky"<<endl<<endl;
    int n;
    cout<<"Vvedit naturalne chyslo: ";
    cin>>n;
    cout<<endl;
    int *mas=new int[n];
    for (int i=1;i<=n;++i)
    {
        cout<<"Vvedit "<<i<<"-te chyslo perestanovky: ";
        cin>>mas[i];
    }
    for (int i=1;i<=n;++i)
    {
        cout<<mas[i];
    }
    cout<<endl;
    int b1=0,b2=0,k,k1,i;
    for (i=n;(i>=1)&&(b1<=b2);--i)
    {
        b1=mas[i]%10;
        b2=mas[i-1]%10;
    k=mas[i-1];
    k1=i-1;
    }
    cout<<k<<endl<<k1<<endl;
    int temp,min2;
    for (int i=n;i>=n;--i)
    {
        if (mas[i]>k) 
        {
                temp=k;
                mas[k1]=mas[i];
                mas[i]=temp;
        }
    }
    for (int i=1;i<=n;++i)
        cout<<mas[i];
    cout<<endl;
 
    for (int i=k1+1,f=0;(i<=(n+k1+1)/2)&&(f<n);++i,++f)
    {
        swap(mas[i],mas[n-f]);
    }
    for (int i=1;i<=n;++i)
        cout<<mas[i];
    //while (1) goto start;
getche();
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru