Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
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:38
AdAgent
Объявления
22.11.2009, 18:55   #2
M128K145
Форумчанин
Эксперт C++
Регистрация: 03.07.2009
Сообщений: 10,630
Репутация: 8176 (3398)
Лучшие ответы: 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#
Помогите пожалуйста, пробую написать парсер на 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
AdAgent
Объявления
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
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
C++: Возведение матрицы в степень
Ребята помогите пожалуйста.. Вообще разобраться не могу, а препод сама ничерта не знает.. Надо на C++ 5.0.2 Пусть даны натуральное число n и (построчно) элементы квадратной вещественной матрицы A 5-го порядка. Вычислить n-ю степень этой матрицы. Знаю, как возвести во 2-ю степень, но код...
С++ для начинающих Carpe Diem 18.04.2014 15:12
Delphi: Возведение матрицы в степень.
Как возвести матрицу встепень? Напишите мне, вообще сообразить не могу Добавлено через 3 минуты Матрица квадратная
Delphi для начинающих killer man 16.12.2013 17:30
C# WinForms: Возведение матрицы в степень
доброго времени суток! помогите пожалуйста. необходимо создать винформ возведения матрицы в степень n. Размерность матрицы и степень вводится с помощью numericUpDown. (сделал) сама матрица отображается в dataGridView. (сделал) данные в матрицу вводятся вручную или рандомно (сделал) на то чтобы...
C# Windows Forms shmidt34 05.12.2012 20:48
Pascal ABC: Возведение матрицы в степень.
Следом квадратной матрицы называется сумма элементов, расположенных на главной диагонали. Даны квадратная матрица A порядка m, натуральное число N. Вычислить следы матриц A, A^2,...,A^N.
Pascal ABC Sunkar 10.04.2012 20:18
C#: Возведение матрицы в степень.
Тупая семестровая задачка...Вообщем звучит так: "Следом квадратной матрицы называется сумма элементов, расположенных на главной диагонали. Даны квадратная матрица A, натуральное число N. Вычислить следы матриц A, A^2,...,A^N." Если разобраться в тупой формулировки, то, как я себе представляю,...
C# для начинающих sanchopa 19.05.2011 17:38
Опции темы

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

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