|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.04.2013, 17:20 | #1 |
Регистрация: 14.04.2013
Сообщений: 4
|
Нахождение детерминанта матрицы на С
Помогите пожалуйста написать программу для нахождения детерминанта матриц на основе рекурсивного алгоритма на языке С.
Написал такую программу Код:
|
14.04.2013, 22:16 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 14.04.2013 в 22:20. |
18.04.2013, 21:41 | #3 |
Регистрация: 14.04.2013
Сообщений: 4
|
BDA, большое спасибо за помощь. А вот эти фрагменты можно заменить чем-то более простым?
Код:
Код:
BDA, разъясни пожалуйста как эти две строки работают |
18.04.2013, 22:44 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Пожалуйста.
Как раз таки использование битовых операций наиболее просто, на мой взгляд (да и экономично - 4 байта для матриц до 32х32 включительно; матрицы с большим размером считать нельзя таким образом - нужно использовать больший беззнаковый тип). free_col хранит 0 биты на тех местах, какие колонки еще не использованы для расчета. if (!(free_col >> i & 1)) free_col >> i - сдвиг на i бит влево free_col >> i & 1 - побитовое "И" c 1 (выделяется 1 бит из числа) !(free_col >> i & 1) - если полученный бит нулевой, то условие выполняется free_col | (1 << i)) 1 << i - сдвиг 1 бита на i бит вправо free_col | (1 << i)) - побитовое "ИЛИ" 2 чисел (таким образом, на i месте будет 1 бит)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 18.04.2013 в 22:50. |
11.05.2013, 20:22 | #5 |
Регистрация: 14.04.2013
Сообщений: 4
|
BDA, не разберусь только со знаком > из следующей строки
Код:
|
11.05.2013, 20:45 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Наверное не может. Поставьте == вместо >= и протестируйте программу.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
12.05.2013, 10:37 | #7 |
Регистрация: 14.04.2013
Сообщений: 4
|
Сделал как вы советовали, теперь все отлично. BDA, большое спасибо за помощь!
|
12.05.2013, 12:02 | #8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Пожалуйста.
= - оператор присваивания == - оператор сравнения
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 12.05.2013 в 12:52. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нахождение обратной матрицы | suslic3d | Общие вопросы Delphi | 0 | 11.12.2012 15:01 |
нахождение обратной матрицы и единичной матрицы размерностью N | denisbrain | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 17.05.2012 11:53 |
Нахождение обратной матрицы | Linkfanka | Помощь студентам | 1 | 24.01.2012 08:23 |
Нахождение определителя матрицы | La`Fleur | C++ Builder | 0 | 10.05.2011 22:34 |
нахождение нечетных элементов матрицы | graf890 | Помощь студентам | 2 | 20.02.2011 01:07 |