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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Napster91
1 / 1 / 0
Регистрация: 28.11.2012
Сообщений: 20
#1

Подсчитать количество строк квадратной матрицы, являющихся перестановкой - C++

21.03.2013, 13:07. Просмотров 652. Ответов 0
Метки нет (Все метки)

Нужно подсчитать количество строк заданной целочисленной матрицы NxN, являющихся перестановкой чисел 1,2,...,N (т.е. содержащих каждое из чисел 1,2,...,N ровно один раз.)

Помогите дописать программу. Для поиска перестановок использовал комбинаторику. Т.е. если произведение элементов строки равно факториалу ранга матрицы, и в строке нет повторяющихся элементов, то эта строка - перестановка.
Программа не совсем корректно работает

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
60
61
62
#include <iostream.h>
#include <time.h>
#include <stdlib.h>
 
 
int main()
{ 
       int n,m,i,j,s=1, fact=1, p, k;
 
 
 srand(time(NULL));
  cout<<"Input rang: "; cin>>n;
  
    for (int i=1; i<n+1; ++i)
  {      fact*=i;
  
  }
  cout <<endl<<"Factorial="<<fact<<endl<<endl;
  
       int**par=new int*[n];
               for (int i=0;i<n;i++)
               *(par+i)=new int[n];
               
               
  
   for (i=0;i<n;i++)
   
    { s=1;
      for (j=0;j<n;j++)
        {               
         int randomNumber;
            if (i%2==0)
            *(*(par+i)+j)=rand()%n;
            else
            *(*(par+i)+j)=s++;
          cout<<*(*(par+i)+j)<<" ";
                
        }
      cout<<endl;  
 
    }
cout <<endl;
 
 
for (i=0;i<n;i++)  
    {p=1;
        for (j=0;j<n;j++)
        
        { 
      if (*(*(par+i)+j)!=(*(*par+i)+j+1))
            p*=(*(*(par+i)+j));
           
     if (fact==p) k++;
             
      }
   cout <<p;
  
cout<<endl;
}
cout <<"Kol-vo perestanovok: "<<k<<endl;
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2013, 13:07     Подсчитать количество строк квадратной матрицы, являющихся перестановкой
Посмотрите здесь:

C++ Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента.
Подсчитать количество строк матрицы, удовлетворяющих условию C++
Подсчитать количество строк заданной целочисленной матрицы N*N C++
C++ Перестановкой строк и столбцов получить все возможные варианты матрицы
C++ Подсчитать количество строк матрицы у которых сумма элементов положительная
C++ Подсчитать количество строк матрицы элементы которых представляют перестановки чисел от 1 до n
Вывести массив в виде матрицы и подсчитать количество строк и столбцов без нулей C++
Подсчитать количество строк заданной целочисленной матрицы n×n, являющихся перестановкой чисел 1, 2, ..., n C++
C++ Подсчитать количество строк заданной матрицы составленых из различных чисел
Подсчитать количество натуральных чисел являющихся палиндромами C++
Подсчитать количество элементов в квадратной матрице C++
Подсчитать количество строк матрицы произведение элементов которых больше 520 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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