Есть прямоугольная матрица, состоящая из 0 и 1. Необходимо посчитать конъюнкцию строк это матрицы (каждую с каждой), а затем сумму полученной в результате конъюнкции строки. Как это реализовать? вот наработки, но считает не верно...
//MatrQ[10][11]
// m n
int[] curL1 = new int[m];//сумма после конъюнкции
for (int f = 1; f < m; f++)
{
for (int i = 0; i < m; i++)
{
for (int j = 1; j < n; j++)
{
if (MatrQ[f][j] == 1 && MatrQ[i][j] == 1)
{
curL1[f] += 1;
}
}
}
}
Матрица с которой работаю
1 1 0 1 0 0 0 0 0 1 1
1 1 1 0 0 0 0 0 0 0 0
0 1 1 0 1 0 0 0 0 0 0
0 0 0 0 0 1 1 1 0 0 0
1 0 1 1 0 0 0 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0
0 0 1 0 0 0 0 0 1 0 1
0 0 1 0 0 0 0 0 1 0 0
0 0 0 0 0 1 1 0 1 0 0
0 0 0 0 0 0 1 1 0 1 0
Результат ( строка 0 в расчете не участвует, и в расчетах не учитывается)
CurL1 = {
-
3
3
3
2
2
2
2
3
2
}
Если я правильно понял условие, то такое решение вам должно подойти:
int[,] matrix =
{
{ 0, 0, 1, 1, 1, 0 },
{ 1, 0, 1, 0, 1, 0 },
{ 1, 1, 1, 0, 1, 1 },
{ 1, 1, 1, 1, 1, 1 },
{ 0, 1, 1, 0, 1, 1 },
{ 1, 0, 1, 1, 0, 1 },
{ 0, 1, 1, 1, 0, 1 }
};
int rows = matrix.GetLength(0);
int cols = matrix.GetLength(1);
int sum = 0;
for (int c = 0; c < cols; ++c)
{
int res = 1;
for (int r = 0; r < rows; ++r)
res &= matrix[r, c];
sum += res;
}
Console.WriteLine(sum);
Пробегаем матрицу по столбцам. Для каждого столбца выполняем конъюнкцию всех элементов (за начальное значение я принял 1, т.к. X & 1 = X). Результат по столбцу просто добавляем в общую сумму.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ЗдравствуйтеЕсть такая ссылка по моему вопросу: ссылка (свойство ElementStyle)