Карта сайта

Это автоматически сохраненная страница от 02.02.2013. Оригинал был здесь: http://2ch.hk/b/res/42737333.html
Сайт a2ch.ru не связан с авторами и содержимым страницы
жалоба / abuse: admin@a2ch.ru

Суб 02 Фев 2013 12:25:46
Анон, почему эта функция не работает, как надо? Должна решать систему уравнений по модулю 2, а не хочет это делать правильно. В программаче одни илитарии, в этом я уже убедился. Собственно, вот код:

int* SOLVE(int **A, int* x, int FIELD_SIZE)
{
PPPPint *y;
PPPPstd::vector< boost::dynamic_bitset<> > matrix_one(FIELD_SIZE);
PPPPy = new int[FIELD_SIZE];
PPPPfor(int i = 0; i<FIELD_SIZE; i++)
PPPP{
PPPPPPPPfor(int j = 0; j < FIELD_SIZE; j++)
PPPPPPPPPPPPmatrix_one.push_back((bool)A<em>[FIELD_SIZE-j-1]);
PPPP}
PPPPfor(int row=0; row<FIELD_SIZE; row++)
PPPP{
PPPPPPPPif(!matrix_one[row][row])
PPPPPPPPPPPPfor(int i = row+1; i<FIELD_SIZE; i++)
PPPPPPPPPPPPPPPPif(matrix_one<em>[row])
PPPPPPPPPPPPPPPP{
PPPPPPPPPPPPPPPPPPPPswap(&amp;matrix_one<em>, &amp;matrix_one[row]);
PPPPPPPPPPPPPPPPPPPPswap(&amp;x<em>, &amp;x[row]);
PPPPPPPPPPPPPPPPPPPPbreak;
PPPPPPPPPPPPPPPP}
PPPPPPPPfor(int i = row+1; i<FIELD_SIZE; i++)
PPPPPPPP{
PPPPPPPPPPPPif(matrix_one<em>[row])
PPPPPPPPPPPP{
PPPPPPPPPPPPPPPPmatrix_one<em> ^= matrix_one[row];
PPPPPPPPPPPPPPPPx<em> = mod_two(x<em>, x[row]);
PPPPPPPPPPPP}
PPPPPPPP}
PPPP}
PPPPfor(int row = FIELD_SIZE-1; row>=0; row--)
PPPP{
PPPPPPPPint sum = 0;
PPPPPPPPfor(int i=row+1; i<FIELD_SIZE; i++)
PPPPPPPPPPPPsum = mod_two(sum, x<em>*matrix_one[row]<em>);
PPPPPPPPy[row] = mod_two(x[row], sum);
PPPP}
PPPPreturn y;
}
</em></em></em></em></em></em></em></em></em></em>


Суб 02 Фев 2013 12:27:29
Вакаба, блядь, заменила все x на просто x.

Суб 02 Фев 2013 12:29:29
>>42737406
Твою мать же. Пикрелейтед.

Суб 02 Фев 2013 12:29:43
>>42737333
> почему эта функция не работает, как надо?
Потому что ты криворукий уебан, очевидно же.

Суб 02 Фев 2013 12:31:00
http://pastebin.com/KbfV1n55

Суб 02 Фев 2013 12:32:40
>>42737517
Верно. Но мне интересно, где именно криворукость сработала.
А вообще, это кусок от программы, проходящей игру Lights Out.

Суб 02 Фев 2013 12:38:37
>>42737578
Это тотальный пиздец, куча указательей, хотя это кресты, создаешь вектор, а следом new.
Напиши алгоритм, видно, что твоя хуйня в три строчки решается.
Подойду через час.

Суб 02 Фев 2013 12:50:34
>>42737839
Вектор медленнее же. Я его использую тут, ибо не знаю, как ещё сделать массив dynamic_bitset.
Алгоритм? Идёшь по диагональным элементам. Если A[i ][j] равен нулю - ищешь строчку ниже, где A[k][j] не равен нулю. Меняешь местами A[k] и A[i ]. Потом берёшь диагональный элемент A[i ] [i ], идёшь вниз. Видишь ненулевой A[k][i ] - складываешь по модулю 2 A[i ] и A[k]. Когда получишь треугольную матрицу, то решить уравнение будет просто.

Суб 02 Фев 2013 13:36:24
>>42737333
Выкинь это говно и пиши на джаве

Суб 02 Фев 2013 13:39:07
Есть же code, долбоебина

Суб 02 Фев 2013 13:40:13
>>42738290
Я тебя нихуя не пони.

Суб 02 Фев 2013 13:48:27
>>42740202
Я не знаю, как иначе объяснить алгоритм решения систем линейных уравнений.

Суб 02 Фев 2013 13:59:24
>>42740538
То есть у тебя некая классическая задача?
Тогда качай мат либу, которая "решает системы линейных уравнений" и не еби мозг, если сам не можешь велосипед написать.

Суб 02 Фев 2013 14:01:00
>>42740949
По модулю 2 умеет?

Суб 02 Фев 2013 14:14:19
>>42741006
В матлабе можно написать все формулы, собрать из них dll, подключить к твоей программе.


← К списку тредов