Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2015, 16:01   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию C++. Задача на латинский квадрат.

Ребят, как определить является ли матрица, размерностью М*М латинским квадратом? Возможно ли это сделать рекурсивно? Допустим если М=5.
from dark to light)

Последний раз редактировалось Алексей_2012; 11.10.2015 в 16:44.
Алексей_2012 вне форума Ответить с цитированием
Старый 11.10.2015, 16:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что такое "Опасный латинский квадрат"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2015, 16:43   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Извиняюсь, сенсор...
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 11.10.2015, 17:33   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что такое "Неопасный латинский квадрат"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2015, 18:39   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
как определить является ли матрица, размерностью М*М латинским квадратом?
педивикию курил или сразу на форум попёр?
Цитата:
Возможно ли это сделать рекурсивно?
чот, ума не разложу, куда тут впихнуть рекурсию...
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.10.2015, 19:04   #6
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Вроде все сделал, но в предпоследней строке выводится 0 или 1, а надо чтоб если
1, то выводилось ДА,
0 - нет.

Хотел сделать разделение на процедуры, но не умею передавать массив в функцию, в делфи делается проще.

Код:
#include <iostream>


using std::cout;
using std::cin;
using std::endl;



int main()
{
    int N=5;

    int Matrix[N][N];

    //Ручное Заполнение
    for(int i(0);i<N;i++)
        for (int j(0);j<N;j++)
        {
            cout<<"Print element ["<<i+1<<", "<<j+1<<"]:  ";
            cin >>Matrix[i][j];
        }

    cout<<endl<<"Formated Matrix: ..."<<endl;

    // вывод введенной матрицы в форматированном виде


    for(int i(0);i<N;i++)
    {
        for (int j(0);j<N;j++)
            cout<< "|"<<Matrix[i][j]<<"|\t";
        cout<<endl;
    }


    // проверка на латинский квадрат

    bool result = false;
    for (int i = 0; i < N && !result; i++)
        for (int j = 0; j < N && !result; j++)
        {
            int count = 0;
            for (int n = 0; n < N; n++)
                if (Matrix[n][j] == Matrix[i][j] && n != i)
                    count++;

            if (count > 0)
            {
                result = true;
                continue;
            }

            count = 0;
            for (int k = 0; k < N; k++)
                if (Matrix[i][k] == Matrix[i][j] && k != j)
                    count++;

            if (count > 0) result = true;
        }

    cout<<"Matrix is latin quadrant: "<<(result == false) ? "YES" : "NO";



    return 0;
}
from dark to light)

Последний раз редактировалось Алексей_2012; 11.10.2015 в 19:07.
Алексей_2012 вне форума Ответить с цитированием
Старый 11.10.2015, 19:25   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
в делфи делается проще.
имхо, правда.
Код:
void foo(int** X)
{
  // insert your shitcode here
}
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.10.2015, 20:25   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ума не разложу, куда тут впихнуть рекурсию...
Проходку по строкам и столбцам можно в рекурсию обернуть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2015, 20:45   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Проходку по строкам и столбцам можно в рекурсию обернуть.
а смысл?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.10.2015, 21:49   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а смысл?
Убедить препода, что военкомат подождет )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Латинский квадрат KOMPNET Помощь студентам 2 27.11.2011 15:20
ПОСТРОИТЬ ЛАТИНСКИЙ КВАДРАТ НА С++ innaa639 Помощь студентам 4 23.11.2009 17:31
Латинский квадрат innaa639 Помощь студентам 1 22.11.2009 22:40
"Латинский" квадрат. Паскаль SmartStas Помощь студентам 9 19.03.2009 16:37