С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
1 / 1 / 2
Регистрация: 07.06.2016
Сообщений: 82

Перестановка с вектором инверсий

23.04.2017, 16:12. Показов 2779. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,помогите перестроить программу с паскаля на с++ вот с этой темы По заданной перестановке построить вектор инверсий
Я вот дошел до того,что создал начальный массив ( перестановку) из которой надо будет проверить,то что скинул в теме, ни как не получается( Помогите пож-та
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
int main()
{   const int f=100;
    int i,j,n;
    int mas1[f],mas2[f];
    cout<<"Vvedite kol-vo elementov perestanovku"<<endl;
    cin>>n;
    cout<<"Vvedite elementi:"<<endl;
    for(i=0;i<n;i++)
    {
        cin >> mas1[i];
        
    }
    cout<<"Nash massive:";
    for (i=0;i<n;i++)
    {
    cout << mas1[i];
    }
    cout<<endl<<"Vektor inversui:"<<endl;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2017, 16:12
Ответы с готовыми решениями:

Найти угол между радиус-вектором и вектором скорости
Здравствуйте! Помогите пожалуйста в решении задачи Закон движения точки имеет вид r=at2i+bt3j , где a=1м/с2, b=1м/с2. Найти угол между...

Поиск инверсий
Подскажите, нужно найти количество инверсий для каждого элемента кортежа. Написал такой код: def inversions(*numbers): count =0 ...

Количество инверсий
Подскажите количество инверсий в последовательности: 3,8,6,1. По идее четыре, но в ответе написано 5, подскажите что правильно

8
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
23.04.2017, 16:46
Объясните на пальцах что должно получиться и из чего. Вот допустим мои числа 14682, что должно быть на выходе.
0
1 / 1 / 2
Регистрация: 07.06.2016
Сообщений: 82
23.04.2017, 17:03  [ТС]
По заданной перестановке построить вектор инверсий Ну тут вроде понятно было написано,но попробую своими словами.
Вот есть числа 1 4 6 8 2 в массиве, надо чтоб каждое число проверялось с левым от него,т.е
1 не с чем не проверится значит она будет 0
теперь 4 проверяется с 1 , т.к 4>1 значит будет 0
Далее 6 проверяется с 1 и 4, т.к больше значит 0
c 8-кой та же история
а вот двойка, больше только единицы,но меньше 4,6 и 8 значит там будет число 3(т.к больше 3-ех чисел).
Как то так.
Ну и получается на выходе 00003
0
4 / 4 / 6
Регистрация: 08.01.2012
Сообщений: 27
23.04.2017, 20:32
вопрос, а если числа между собой равны, что будет при этом условии?
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
#include <iostream>
 
using namespace std;
 
int main()
{
    const int f = 100;
    int i, j, n;
    int mas1[f], mas2[f];
 
    cout << "Vvedite kol-vo elementov perestanovku" << endl;
    cin >> n;
 
    cout << "Vvedite elementi:" << endl;
    for (i = 0; i < n; i++)
    {
        cin >> mas1[i];
    }
 
    cout << "Nash massive:";
    for (i = 0; i < n; i++)
    {
        cout << mas1[i];
    }
 
    cout << endl << "Vektor inversui: " << endl;
    int sum = 0;
    for (i = 0; i < n; i++)
    {
        for (j = 0; (j < n) && (j <= i); j++)
        {
            if (mas1[i] > mas1[j])
            {
                sum += 0;
            }
            else if (mas1[i] < mas1[j])
            {
                sum += 1;
            }
            else
                sum += 0;
        }
        mas2[i] = sum;
        cout << mas2[i];
    }
    cout << endl;
 
    system("pause");
    return 0;
}
0
1 / 1 / 2
Регистрация: 07.06.2016
Сообщений: 82
24.04.2017, 02:23  [ТС]
Что этот код считает?
Если равны,то считается как больше
0
4 / 4 / 6
Регистрация: 08.01.2012
Сообщений: 27
24.04.2017, 05:38
Цитата Сообщение от zergreak Посмотреть сообщение
Что этот код считает?
Если равны,то считается как больше
Код выполняет те условия, которые ты указывал в посте выше:
Вот есть числа 1 4 6 8 2 в массиве, надо чтоб каждое число проверялось с левым от него...
Ну и получается на выходе 00003
0
1 / 1 / 2
Регистрация: 07.06.2016
Сообщений: 82
24.04.2017, 07:12  [ТС]
Как то не так считает,вот я к примеру ввёл другой пример:
3 2 1 5 4, программа показывает 01334, а хотя должна 01201
Т.к первый элемент всегда 0 , двойка меньше 3-ки - значит 1 , единица меньше 3 и 2 - значит 2 , левее ниже пятерки ничего нет - значит 0 , а четверка меньше только пятерки слева - значит 1
0
4 / 4 / 6
Регистрация: 08.01.2012
Сообщений: 27
24.04.2017, 14:54
Исправил немного, был мой косяк . zergreak проверяй...
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
#include <iostream>
 
using namespace std;
 
int main()
{
    const int f = 100;
    int i, j, n;
    int mas1[f], mas2[f];
 
    cout << "Vvedite kol-vo elementov perestanovku" << endl;
    cin >> n;
 
    cout << "Vvedite elementi:" << endl;
    for (i = 0; i < n; i++)
    {
        cin >> mas1[i];
    }
 
    cout << "Nash massive:";
    for (i = 0; i < n; i++)
    {
        cout << mas1[i];
    }
 
    cout << endl << "Vektor inversui: " << endl;
    for (int j = 0; j < n; j++)
    {
        int sum = 0;
        for (int i = 0; i < j; i++)
        {
            if (mas1[j] < mas1[i])
                sum += 1;
            else
                sum += 0;
        }
        mas2[i] = sum;
        sum = 0;
        cout << mas2[i];
    }
    cout << endl;
 
    system("pause");
    return 0;
}
1
1 / 1 / 2
Регистрация: 07.06.2016
Сообщений: 82
24.04.2017, 15:17  [ТС]
Всё,теперь как надо.Спасибо большое)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2017, 15:17
Помогаю со студенческими работами здесь

Поиск инверсий
помогите решить задачу из кормена на подсчет инверсий Текст задачи: Разработайте алгоритм, определяющий количество инверсий,...

Найти минимальное количество инверсий, необходимых для совпадения последовательностей
Даны две последовательности: a = 2 3 1 5 4 и b = 5 2 4 1 3. Надо найти минимальное количество инверсий, которые надо сделать, что бы...

Подсчет кол-ва инверсий
Здравствуйте, помогите разобраться с ошибкой. Компилирую код, а компилятор (VS 2010 ) выдает ошибку, не могу понять что делать. ...

Количество инверсий в массиве
Добрый день. Необходимо написать программу, которая выведет количество инверсий в массиве. Помогите разобраться и найти где ошибка. ...

Определить количество инверсий в последовательности
дана послед-ть из 20 целых чисел. Определить кол-во инверсий в этой послед-ти (т.е. таких пар элементов, в кот. большее число находится...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru