Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.24;
Скачать: CL | DM;

Вниз

Вычисления   Найти похожие ветки 

 
q10nik   (2006-12-06 15:52) [0]

Есть двумерный массив МхN как вычислить
сумму каждого элемента массива с остальными
кроме тех, с какими он находится в одном столбце
результаты сохранить в динамическом массиве
ЗЫ:матрица меняет свой размер, столбцы:m
                              строки:n  
________________________
|   | Р |   |   |   |    |   |   |
|__|__|__|__|__|__|__|__|
|   | Х|    |   |   |    |    |  |
|__|__|__|__|__|__|_ _|__|
|   | Х|    |   |   |   |   |   |
|__|__|__|__|__|__|__|__|
|   | Х|    |  |  |  |  |  |
|__|__|__|__|__|__|__|__|
|   | Х|    |   |   |   |   |   |
|__|__|__|__|__|__|__|__|
|   | Х|    |   |   |   |   |   |
|__|__|__|__|__|__|__|__|

делаю так, но правильно ли??
И можно ли это делать быстрее

var
r:array of real;
i,i1,j,j1,k,m,n:cardinal;

begin
SetLength(r,m*n);
k:=0;
For i:=1 to m do
For j:=1 to n do
 begin
  Sum:=0;

   for i1:=1 to m do
    begin
     if i1<>i then
      for j1:=1 to n do
       sum:=sum+matr[i1,j1];
    end;
   r[k]:=sum;
   Inc(k);
 end;
end;


 
MBo ©   (2006-12-06 15:57) [1]

один раз посчитать суммы для каждого столбца и для всей матрицы, далее простой арифметикой получить нужный результат


 
novill ©   (2006-12-06 16:04) [2]

> И можно ли это делать быстрее

Можно.
1.Для этого один раз посчитай суммы по столбцам, а потом работай уже с ними.
2.Можно еще чуть ускорить, если посчитать для каждого столбца сумму всех столбцов, кроме текущего. тогда
цикл
for i1:=1 to m do
   begin
    if i1<>i then
     for j1:=1 to n do
      sum:=sum+matr[i1,j1];
   end;

превратится в одно сложение.



Страницы: 1 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
15-1164976814
tesseract
2006-12-01 15:40
2006.12.24
Помощь нужна


8-1147070418
Winni
2006-05-08 10:40
2006.12.24
Перекодировать DVD в CD (MPEG4 ) ?


4-1155901190
Прогер
2006-08-18 15:39
2006.12.24
Как грамотно остановить сервис? Service WinNT


15-1165304626
cyborg
2006-12-05 10:43
2006.12.24
Ваше мнение об интернетизации школ?


3-1160722969
Fin
2006-10-13 11:02
2006.12.24
Обрезание знаков после запятой