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

Проверка монотонности строки матрицы - C++

Восстановить пароль Регистрация
 
Webmotiv
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 41
05.06.2013, 20:52     Проверка монотонности строки матрицы #1
Как сделать вот проверку манатонность,чтобы пощитать количество монотонных строк...
Есть идея сделать второй массив и сохранять в него от 1 до n/2 элементов (n пусть размер массива nxn)
и прогонять одну строчку n/2-раз просто сравнивать первые несколько элементов сохраненные в массив с остальными

например строка 123123123
в массив сначало сохранит 1 - выдаст false потом 12-false,потом 123 и когда прогонит через строку выдаст true

только я запутался с вложенными циклами( помогите плиз


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
#include <iostream>
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL, "Russian"); 
 
    const int n=4;
    int i,j,s=0;
    /*
    int a[n][n];
        for (i=0;i<n;i++)
        for ( j=0;j<n;j++) a[i][j]=rand()%3;
        */
    int a[n][n]={{1,2,1,2},{1,2,3,1},{1,2,2,1},{1,1,1,2}};
 
    for (i=0;i<n;i++)
    {   for ( j=0;j<n;j++) cout << a[i][j]<< " ";
        cout << '\n';
    }
 
 
 
 
 
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 20:52     Проверка монотонности строки матрицы
Посмотрите здесь:

умножить элемент каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы C++
C++ умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй матрицы
Динамический массив. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы C++
C++ Дан массив размера N. Определить количество его промежутков монотонности
Найти среднее арифметическое элементов каждой строки матрицы Q (lm) и отнять его от элементов этой строки. размер матрицы 7х7.заранее спасибо C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.06.2013, 21:09     Проверка монотонности строки матрицы #2
Что подразумевается под монотонностью? Строка - строка матрицы или std::string?
Webmotiv
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 41
05.06.2013, 21:38  [ТС]     Проверка монотонности строки матрицы #3
строка массива
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.06.2013, 21:40     Проверка монотонности строки матрицы #4
Webmotiv, а монотонность что такое? Возрастает или убывает?
Webmotiv
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 41
05.06.2013, 21:54  [ТС]     Проверка монотонности строки матрицы #5
Забей...
монотонность это цикличные повторения
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
05.06.2013, 21:57     Проверка монотонности строки матрицы #6
Цитата Сообщение от Webmotiv Посмотреть сообщение
Как сделать вот проверку манатонность,чтобы пощитать


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
#include <iostream>
#include <algorithm>
#include <cstddef>
#include <random>
#include <iterator>
#include <functional>
 
int main()
{
    const size_t M = 5, N = 4;
    std::array<std::array<int, M>, N> A;
    std::mt19937 gen {std::random_device()() };
    std::uniform_int_distribution<int> uid(1, 3);
    auto print_a = [](const std::array<int, M> &a)
    {
        std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " ") );
        bool b = std::is_sorted(a.begin(), a.end()) ||
                 std::is_sorted(a.begin(), a.end(), std::greater<int>());
        std::cout << (b ? "sorted\n" : "not sorted\n");
    };
    auto genAndPrint = [&uid, &gen, &print_a](std::array<int, M> &a)
    {
        std::generate(a.begin(), a.end(), [&uid, &gen]() -> int { return uid(gen); } );
        print_a(a);
    };
    std::for_each(A.begin(), A.end(), genAndPrint);
}
Webmotiv
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 41
05.06.2013, 22:03  [ТС]     Проверка монотонности строки матрицы #7
Спасибо конешно но надо по простому,используя обычные for и не подключая расширений таких)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
05.06.2013, 22:05     Проверка монотонности строки матрицы #8
Цитата Сообщение от Webmotiv Посмотреть сообщение
не подключая расширений таких
так:
C++
1
2
int main()
{}
Добавлено через 53 секунды
Для размышлений:
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <class ForwardIterator>
  bool is_sorted (ForwardIterator first, ForwardIterator last)
{
  if (first==last) return true;
  ForwardIterator next = first;
  while (++next!=last) {
    if (*next<*first)     // or, if (comp(*next,*first)) for version (2)
      return false;
    ++first;
  }
  return true;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 22:44     Проверка монотонности строки матрицы
Еще ссылки по теме:

Определение монотонности последовательности C++
Определить, что все элементы строки первой матрицы больше соответствующих элементов строки второй матрицы C++
C++ Шаблонный класс матрицы. Проверка матрицы на пустоту

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

Или воспользуйтесь поиском по форуму:
Webmotiv
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 41
05.06.2013, 22:44  [ТС]     Проверка монотонности строки матрицы #9
Во как надо.Легко и просто и на простом операторе

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
#include <iostream>
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL, "Russian"); 
 
    const int n=4;
    int i,j,s=0;
    /*
    int a[n][n];
        for (i=0;i<n;i++)
        for ( j=0;j<n;j++) a[i][j]=rand()%3;
        */
    int a[n][n]={{1,2,1,2},{1,2,1,2},{1,0,1,2},{1,2,1,2}};
 
    for (i=0;i<n;i++)
    {   for ( j=0;j<n;j++) cout << a[i][j]<< " ";
        cout << '\n';
    }
 
    int b[n],fl,k;
 
    for (i=0;i<n;i++)
        for ( j=0;j<n;j++) 
        {
        
            fl=0;
            b[j]=a[i][j];
 
            if( n%(j+1)==0 && j!=0) 
                for(k=0;k<(n/j);k++)
                    for(int p=0;p<j;p++) { if(a[i][j*k+p]==b[j] ) fl=1; else fl=0;}
 
            if ( fl==1) s++;
        }
        
 
    cout << endl << endl << " Монотонных строк:" << s<< endl << endl;
  return 0;
}
Yandex
Объявления
05.06.2013, 22:44     Проверка монотонности строки матрицы
Ответ Создать тему
Опции темы

Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru