[C++] Дана двумерная матрица... *DELETED*
>дана двумерная матрица с рангом 8
а размерность?
а размерность?
Размерность не нужна, ранг = 8, а размерность...ну пусть 10
memset
не фтыкнул...кроме того, что она чето там заполняет
напиши код с этим мемсетом(хотя бы эскиз, нобросок, точность не нужна, алгоритм нужын)
ЗЫ: Я мошт и рюхнул бы - но это луна для меня, не достану:)
напиши код с этим мемсетом(хотя бы эскиз, нобросок, точность не нужна, алгоритм нужын)
ЗЫ: Я мошт и рюхнул бы - но это луна для меня, не достану:)
дана двумерная матрица с рангом 8каким образом дана? т.е. формат хочу
memset не подойдет. Точнее подойдет только если матрица состоит из char'ов.
Тогда нужно где-то создать экземляр, заранее заполненный (например, вложенными циклами) единицами matrix1, а там где критична скорость инициализации делать memcpy( matrix2, matrix1, matrix_dim*matrix_dim*sizeof(element) )
matrix_dim - размерность матриц
element - тип элемента матриц
matrix2 - неинициализированная матрица
Тогда нужно где-то создать экземляр, заранее заполненный (например, вложенными циклами) единицами matrix1, а там где критична скорость инициализации делать memcpy( matrix2, matrix1, matrix_dim*matrix_dim*sizeof(element) )
matrix_dim - размерность матриц
element - тип элемента матриц
matrix2 - неинициализированная матрица
Это если матрица задается непрерывным образом. Например, int matrix[matrix_dim][matrix_dim].
Ты ни в проганье не смыслишь, ни в математике. Матрица ранга 8 означает, что эта матрица имеет ровно 8 линейно-независимых строк (столбцов а так как у тебя все столбцы заполнены еденицами, то и ранг равен в точности 1!
Ох. Тебе на ЛОР пора.
Извини.
Извини.
В такой формулировке тебе никто ничего путного не скажет.
Во-первых, матрица заполненая единицами имеет ранг 1.
Во-вторых, матрицы бывают не только квадратные.
МОжет всё-таки имеется в виду матрица 8 на 8?
Во-первых, матрица заполненая единицами имеет ранг 1.
Во-вторых, матрицы бывают не только квадратные.
МОжет всё-таки имеется в виду матрица 8 на 8?
не...матрица пох какая, ранг её равен 8, сама она мошт и 8*8, мошт 10*20
Заполнить 1-цами - не значит, что каждый эл-т 8*8 = 1, в том-то и задача
Заполнить 1-цами - не значит, что каждый эл-т 8*8 = 1, в том-то и задача
Как можно хоть чем-то заполнить матрицу неизвестного размера? Или он всё-таки дан (хотя бы в виде N*M)?
пускай N*M, N,M>=8
Что-то типа того:
#include <stdlib.h>
#include <iostream.h>
int main {
double *a;
int i, j;
int N = 10;
int M = 15;
a = (double*)calloc(N*M, sizeof(double;
for(i=0;i<8;i++) {
a[M*i+i] = 1;
}
// Проверка
for(i=0;i<N;i++) {
for(j=0;j<M;j++) {
cout << a[i*M+j] << " ";
}
cout << "\n";
}
free(a);
return 0;
}
Спасибо, линн! я токо не фтыкнул, этот код реализует алгоритм:
Из матрицы 10*15 выудить матрицу 8*8 с определком не раным нулю и все эл-ты изменить на '1'?
Или какой ты в свойм коде реализуешь алгоритм?
Из матрицы 10*15 выудить матрицу 8*8 с определком не раным нулю и все эл-ты изменить на '1'?
Или какой ты в свойм коде реализуешь алгоритм?
зачот 
а остальное нулями не надо забивать?

а остальное нулями не надо забивать?
Я просто создаю матрицу ранга 8.
Всё равно я не понял что такое "дана матрица ранга 8".
Всё равно я не понял что такое "дана матрица ранга 8".
man calloc
Зачем делать то, что за тебя сделает компилятор
Зачем делать то, что за тебя сделает компилятор

да он просто единичную матрицу нарисовал размера 8 на 8 в нулевой матрице большего размера 

>Всё равно я не понял что такое "дана матрица ранга 8".
Значит берёццо массив для матрицы 10 на 15 с рангом = 8, он дан
Я понял, что в нём надо найти строки-столбцы, которые и дают этот 8-й ранг и приравнять '1', на остальные эл-ты положить...
Значит берёццо массив для матрицы 10 на 15 с рангом = 8, он дан
Я понял, что в нём надо найти строки-столбцы, которые и дают этот 8-й ранг и приравнять '1', на остальные эл-ты положить...
без вложенного цикла:

double x[10][10];
int i;
for(i=0;i<100;i++)
{
x[i/10][i%10]=(i>80)?0:!(i%9);
}

всё, спасибо!
Спасибо
Спасибо
Оставить комментарий
vladi1
Сообщение удалил