DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Множення матриць за допомогою алгоритму Винограда

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Інформатика
Група:
КН-11
Коротко про документ

Про що ця робота

Звіт до лабораторної роботи присвячено реалізації алгоритму Винограда для множення матриць мовою C#. Наведено лістинг програми з покроковим обчисленням рядкових та стовпчикових факторів.

У роботі розглядаються

  • Множення матриць
  • Алгоритм Винограда
  • Мова програмування C#
  • Обчислювальні алгоритми
  • Лабораторна робота

Зміст і розділи

  1. Текст програми
  2. Результат роботи програми
Для кого:Студенти технічних спеціальностей, які вивчають дисципліну Інформатика та програмування.
Викладачі:Не вказано

Ключові поняття

матрицяалгоритм ВиноградаC#методфактор рядкафактор стовпцяініціалізаціямасивлабораторна роботапрограма

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ ЗВІТ До лабораторної роботи №11 з курсу: «Інформатика» на тему: «Множення матриць за допомогою алгоритму Винограда» ТЕКСТ ПРОГРАМИ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace lab_inform_11 { class Program { static void Main(string[] args) { Grape gr = new Grape(); gr.Initialization(); Console.WriteLine("\n Матриця G:"); for (int i = 0; i < gr.G.GetLength(0); i++) { Console.WriteLine(); for (int j = 0; j < gr.G.GetLength(1); j++) Console.Write("\t" + gr.G[i, j]); } Console.WriteLine("\n \n Матриця H:"); for (int i = 0; i < gr.H.GetLength(0); i++) { Console.WriteLine(); for (int j = 0; j < gr.H.GetLength(1); j++) Console.Write("\t" + gr.H[i, j]); } gr.RowFactor(); gr.CollumFactor(); gr.ResultCalculations(); Console.WriteLine("\n \n Результуюча матриця R = G * H:"); for (int i = 0; i < gr.R.GetLength(0); i++) { Console.WriteLine(); for (int j = 0; j < gr.R.GetLength(1); j++) Console.Write("\t" + gr.R[i, j]); } Console.ReadKey(); } } class Grape { public int[,] G, H, R; public int[] RF, CF; public const int a = 4, b = 4, c = 4; public int d; public void Initialization() { G = new int[a, b]{{ 7, 12, 4, 1}, { 3, 8, -1, 8}, { 4, 1, 11, 0}, { 2, 3, 1, 9}}; H = new int[b, c]{{ 3, 1, 14, 11}, { 7, 2, -3, 0}, { -4, 12, 15, -2}, { 6, -12, 5, 19}}; R = new int[a, c]; d = b / 2; } public int[] RowFactor() { RF = new int[a]; for (int i = 0; i < a; i++) { RF[i] = G[i, 0] * G[i, 1]; for (int j = 1; j < d; j++) { RF[i] += G[i, 2 * j] * G[i, 2 * j + 1]; } } return RF; } public int[] CollumFactor() { CF = new int[c]; for (int i = 0; i < c; i++) { CF[i] = H[0, i] * H[1, i]; for (int j = 1; j < d; j++) CF[i] += H[2 * j, i] * H[2 * j + 1, i]; } return CF; } public int[,] ResultCalculations() { for (int i = 0; i < c; i++) for (int j = 0; j < c; j++) { R[i, j] = -RF[i] - CF[j]; for (int k = 0; k < d; k++) { if (k == 0) { R[i, j] += ((G[i, 0] + H[1, j]) * (G[i, 1] + H[0, j])); } else R[i, j] += ((G[i, 2 * k] + H[2 * k + 1, j]) * (G[i, 2 * k + 1] + H[2 * k, j])); } } return R; } } } РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ 
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!