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

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

Восстановить пароль Регистрация
 
Napster91
1 / 1 / 0
Регистрация: 28.11.2012
Сообщений: 20
21.03.2013, 13:07     Подсчитать количество строк квадратной матрицы, являющихся перестановкой #1
Нужно подсчитать количество строк заданной целочисленной матрицы 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++ Для каждого столбца матрицы вычислить количество элементов, являющихся нечетными числами
C++ В квадратной матрице пределить количество неупорядоченных строк
Подсчитать количество пучтых строк и количество строк,которые начинаются и оканчиваются на одну и ту же букву. C++
Подсчитать количество строк матрицы, удовлетворяющих условию C++
Подсчитать количество строк заданной целочисленной матрицы N*N C++
C++ Перестановкой строк и столбцов получить все возможные варианты матрицы
C++ Подсчитать количество строк матрицы у которых сумма элементов положительная

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

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

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