Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум .NET > Форум C# .NET
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Старый 22.11.2009, 18:38   #1
Вишенка
Новичок
 
Аватар для Вишенка
 
Регистрация: 18.11.2009
Сообщений: 6
Репутация: 0 (0)
возведение в степень матрицы / C# .NET

Помогите, пожалуйста, написала программу в си# возведение в степень матрицы, выводит ответ, но неправильный(((, в чём ошибка?
Вот фрагмент кода

Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void buttonExponentiation_Click(object sender, EventArgs e)
        {
            double S = 0;
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                {
                    S = 0;
                    S = Math.Pow(A[i, j], f);
                    f = Convert.ToInt32(textBoxP.Text);
                    B[i, j] = S;
                }
           
            FillDG();
        }
 
        void FillDG()
        {
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                    dataGridViewMatrixB.Rows[i].Cells[j].Value
                        = B[i, j].ToString();
        }
Старый 22.11.2009, 18:55   #2
M128K145
Форумчанин
Эксперт C++
 
Аватар для M128K145
 
Регистрация: 03.07.2009
Сообщений: 10,626
Репутация: 8151 (3373)
Лучшие ответы: 68
В код не вникал, но попробуй так
Код C#
1
2
3
4
int i, j;
for (i = 0; i < m; ++i)
    for (j = 0; j < n; ++j)
        B[i, j] = Math.Pow(A[i, j], Convert.ToInt32(textBoxP.Text));
Другие темы раздела Форум программистов C#. Вопросы использования языка программирования C# .NET. Помощь в решении задач.
C# парсер на C#
Помогите пожалуйста, пробую написать парсер на c# сайта kinopoisk.ru, например первая строка (год) , мне нужно чтоб программа в textbox1 вставила 2009, другая строка (страна) в textbox2 программа всавила США, КАНАДА, целый день потратил на поиски не нашол умоляю помогите скажите хоть в каком...
C# Непонятность со StopWatch
// The first execution time will be tossed // out, since it can skew the average time. Взято из примера Msdn http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx Вот, стало интересно узнать, почему первое замеренное stopwatch'ем время неточное (искаженное)...
Старый 22.11.2009, 19:22   #3
Goldywhite
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 119
Репутация: 43 (43)
Лучшие ответы: 2
потому что это не возведение в степень.
A^2 = A*A. Ищи формулу умножения матриц и используй её.

Добавлено через 3 минуты
насколько я знаю матрица должна быть квадратной для возведения в степень.
Вроде так:
Код C#
1
2
3
4
5
6
var B = new int[n,n];
for(var i = 0; i<n; i++)
for(var j=0; j<n; j++) {
for(var k =0; k<n; k++)
B[i,j]+=A[i,k]*A[k,j];
}
Старый 22.11.2009, 20:02  [ТС]   #4
Вишенка
Новичок
 
Аватар для Вишенка
 
Регистрация: 18.11.2009
Сообщений: 6
Репутация: 0 (0)
Goldywhite, мне же надо не только в квадрат возвести эту матрицу, степенью может быть любое число
Старый 22.11.2009, 20:02
Google
Объявления
возведение в степень матрицы / C# .NET

Старый 22.11.2009, 20:27   #5
Goldywhite
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 119
Репутация: 43 (43)
Лучшие ответы: 2
Как-то так:

Код C#
1
2
3
4
5
6
7
8
9
10
11
var C = A;
for(var p =0; p<pow; p++){
var B = new int[n,n];
for(var i = 0; i<n; i++)
for(var j=0; j<n; j++) {
for(var k =0; k<n; k++)
B[i,j]+=C[i,k]*A[k,j];
}
C=B;
}
return C;
Добавлено через 9 минут
Работает?
Старый 22.11.2009, 20:37  [ТС]   #6
Вишенка
Новичок
 
Аватар для Вишенка
 
Регистрация: 18.11.2009
Сообщений: 6
Репутация: 0 (0)
Нет, выходит ошибка, связанная с return

Добавлено через 2 минуты
Хотя работает, но всё равно ответ неправильный
Старый 22.11.2009, 20:39   #7
Goldywhite
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 119
Репутация: 43 (43)
Лучшие ответы: 2
потому что это тело функции с такой сигнатурой:
Код C#
1
int[,] MatrixPow(int[,] A, int n, int pow)
Добавлено через 52 секунды
Цитата Сообщение от Вишенка Посмотреть сообщение
Хотя работает, но всё равно ответ неправильный
Какая матрица и какой правильный ответ?
Старый 22.11.2009, 21:03  [ТС]   #8
Вишенка
Новичок
 
Аватар для Вишенка
 
Регистрация: 18.11.2009
Сообщений: 6
Репутация: 0 (0)
Всё равно ошибка return, ввожу матрицу 3 2, возвожу в квадрат, правильный ответ 11 14, а выводит 18 8
1 4 7 18 2 32

Добавлено через 1 минуту
Матрицы квадратные, цифры сместились

Добавлено через 43 секунды
Всё равно ошибка return, ввожу матрицу 3 2, возвожу в квадрат, правильный ответ 11 14, а выводит 18 8
1 4 7 18 2 32
Старый 22.11.2009, 21:08   #9
Goldywhite
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 119
Репутация: 43 (43)
Лучшие ответы: 2
что такое матрица 3 2?
Старый 22.11.2009, 21:10  [ТС]   #10
Вишенка
Новичок
 
Аватар для Вишенка
 
Регистрация: 18.11.2009
Сообщений: 6
Репутация: 0 (0)
возведение в степень матрицы / C# .NET

Матрица 2 3 4 1, квадратная
Старый 22.11.2009, 21:10
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
Алгебра, теория чисел Возведение матрицы в n степень
Допустим дана матрица A=\left(\begin{matrix}-3 & -2 & -2\\ 1 & 2 & 1\\ 3 & 1 & 2\end{matrix} \right) Нужно найти A^{100}?Так вот как это сделать?Нужен сам алгоритм или лучше примеры решения подобных задач.Гугл не помог.
OziFaker
Assembler: математика, вычисления Возведение матрицы в степень
Сори за то что пложу темы..Люди кто нибудь скажет как возвести на ассемблере матрицу в степень?А то уже весь гугл перыл ничего точно никто не выдаёт.Просто скажите формулу.Степень и число зад.пользователем.
Svikator
C# для начинающих Возведение матрицы в степень.
Тупая семестровая задачка...Вообщем звучит так: "Следом квадратной матрицы называется сумма элементов, расположенных на главной диагонали. Даны квадратная матрица A, натуральное число N. Вычислить следы матриц A, A^2,...,A^N." Если разобраться в тупой формулировки, то, как я себе представляю,...
sanchopa
С++ для начинающих Возведение матрицы в степень
Программа должна возводить квадратную матрицу в степень, то есть умножаться N раз сама на себя. здесь на C# мне помочь не смогли, но синтаксис ++ я знаю, так что может кто разберется...
sanchopa
С++ для начинающих Возведение матрицы в степень
Помогите пожалуйста подправить программу, чтобы в итоге выводила матрицу равную исходной матрице, возведённой в степень w. Просьба работать с библиотеками, которые есть. #include "stdafx.h" #include "iostream" using namespace std; #include "stdio.h" #include "conio.h" int**umn (int **a,...
craftsman
Опции темы

Текущее время: 19:40. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.