Служба спасения студентов
Служба спасения для студентов

СибГУТИ Контрольная работа Теория сложности вычислительных процессов и структур Операционные системы скачать бесплатно

Скачать бесплатно
Задание
Написать программу, которая оптимальным образом расставляет скобки при перемножении матриц M1M2M3M4M5M6M7M8M9M10M11M12. Матрицы имеют следующие размерности: 
M1[r0xr1], M2[r1xr2], M3[r2xr3], M4[r3xr4], M5[r4xr5], M6[r5xr6], M7[r6xr7], M8[r7xr8], M9[r8xr9], M10[r0xr10], M11[r10xr11], M12[r11xr12].
Размерности матриц считать из файла. 
Вывести промежуточные вычисления, результат расстановки скобок и трудоемкость полученной расстановки. 
Номер варианта выбирается по последней цифре пароля.
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 
0 8 6 2 5 9 3 6 4 7 3 9 7
1 6 9 4 8 9 3 5 6 8 7 2 6
2 5 3 2 6 9 7 4 9 2 6 7 4
3 4 6 6 9 7 5 6 4 2 9 3 7
4 9 5 2 8 5 6 9 8 3 4 7 9
5 5 8 3 4 9 5 7 6 8 4 9 2
6 6 3 9 4 9 4 8 6 4 7 9 9
7 2 2 9 6 9 3 7 7 9 8 3 4
8 5 6 8 7 2 3 2 9 4 4 4 8
9 6 5 5 9 7 8 9 8 3 2 8 4
Описание алгоритма
Задача решается с помощью следующего алгоритма:
1) Заполняем трудоемкости матриц:
Трудоемкости на главной диагонали равны 0:
for i:=1 to n do f(i,i):=0;
2) Внешний цикл по t – длине перемножаемого блока;
Средний цикл по k – местоположению блока;
Внутренний – поиск минимума по j. 
for t:=1 to n–1 do
for k:=1 to n–t do
Текст программы на языке Pascal
...
Результаты работы программы
Матрица минимальных трудоемкостей:
    0  240  520  268  298  300  390  408  440  472  576  626
    0    0  336  208  244  244  352  356  388  420  532  576
    0    0    0  112  160  152  296  276  308  340  468  500
    0    0    0    0   42   40  166  156  188  220  340  378
    0    0    0    0    0   12   48  100  132  164  228  308
    0    0    0    0    0    0   54   96  128  160  248  310
    0    0    0    0    0    0    0   72  104  136  200  280
    0    0    0    0    0    0    0    0  144  208  480  484
    0    0    0    0    0    0    0    0    0   64  192  304
    0    0    0    0    0    0    0    0    0    0  128  240
    0    0    0    0    0    0    0    0    0    0    0  160
    0    0    0    0    0    0    0    0    0    0    0    0
Матрица для расстановки скобок:
    0    1    2    1    4    4    6    4    4    4    4    4
    0    0    2    2    4    4    6    4    4    4    4    4
    0    0    0    3    4    3    6    4    4    4    4    4
    0    0    0    0    4    4    6    4    4    4    4    4
    0    0    0    0    0    5    6    6    6    6   10   11
    0    0    0    0    0    0    6    6    6    6    6    6
    0    0    0    0    0    0    0    7    8    9   10   11
    0    0    0    0    0    0    0    0    8    8    8    8
    0    0    0    0    0    0    0    0    0    9   10   10
    0    0    0    0    0    0    0    0    0    0   10   10
    0    0    0    0    0    0    0    0    0    0    0   11
    0    0    0    0    0    0    0    0    0    0    0    0
Результат: ((М1*(М2*(М3*М4)))*((((М5*М6)*(((М7*М8)*М9)*М10))*М11)*М12))
Полученная трудоемкость: 626
Заявка на расчет