Ответ 1
мои одноклассники предлагают приятное решение:
ответ NO
обозначает a
как (1 0)
и b
как (0 1)
матрица a
равна
1 0
0 1
+=
и -=
означают добавление или вычитание строк друг другу. Это означает, что определитель либо не меняет своего знака, либо равен 0
. Конечная матрица
0 1
1 0
с определителем, равным -1
, поэтому вы не можете его получить
UPDATE: у вас есть следующие операции:
-
a-=a
. Одна строка становится0
, поэтомуdet=0
-
a+=a
. Это означает умножение строки на2
, поэтомуdet A'= 2*det A
-
a+=b
. Это означает элементарное преобразование, которое не меняет значенияdet
-
a-=b
. То же самое, что и с3.
Затем применим это доказательство для b-=b
, b+=b
, b+=a
, b-=a
. Таким образом, детерминант не меняет своего знака, или это 0
ОБНОВЛЕНИЕ 2:
как сказал @Tom, вот пример того, как это сделать на С#: http://ideone.com/UzVLML. Однако в C это неверно: http://codepad.org/Rmhn9iqb. Может ли кто-нибудь уточнить разницу b -= b += b
в C и С#?