Методические аспекты автоматической генерации задач по линейной алгебре
3
*
0 1
.
0
1
d
A
(1)
Ее определитель равен
d
. Подвергнем матрицу (1) серии случай-
ных преобразований, прибавляя к случайно выбранной строке
(столбцу) другую случайно выбранную строку (столбец), умножен-
ную на случайное целое ненулевое число. В дальнейшем будем назы-
вать такую процедуру
перемешиванием строк (столбцов)
. Полу-
ченная в результате матрица также будет иметь определитель
d
. При
этом требуется, чтобы, с одной стороны, элементы матрицы были не
очень большими, с другой стороны, матрица не должна содержать
избыточного количества нулей. Наиболее простым способом обеспе-
чить выполнение этих требований является проверка на выходе и ге-
нерация новой матрицы в случае, если текущая им не удовлетворяет.
Поскольку как сама генерация, так и проверка выполняются очень
быстро, алгоритм в целом получается эффективным.
Отметим, что такая структура алгоритма, видимо, является общей
для всех генераторов задач, так как учесть все возможности в про-
цессе составления условий невозможно. Однако, несмотря на кажу-
щуюся неэффективность, она имеет свои преимущества. Ведь при
таком подходе нет необходимости придумывать способ генерации,
гарантирующий качество полученного результата. Достаточно лишь
предложить алгоритм, выдающий хорошие условия, относительно
часто и грамотно организовать проверку, чтобы отсечь неудачные.
2. Алгоритм генерации матричных уравнений.
Рассмотрим ал-
горитм генерации матричных уравнений вида
,
AX B
где
A
и
B
—
известные квадратные матрицы, а
X
— искомая. При решении сту-
дент должен обратить матрицу
A
по формуле
1
1 ,
det
A
A
A
где
( )
T
ij
A A
— присоединенная матрица ( т. е. составленная из алгеб-
раических дополнений матрицы
А
и затем транспонированная), и
найти
1
.
X A B
При этом матрица
A
должна быть невырожденной
и иметь небольшой определитель, но не равный единице, чтобы сту-
дент, забывший на него поделить, не мог случайно получить пра-
вильный ответ. Также матрица
A
не должна быть симметричной,
чтобы студент не мог получить правильный ответ в случае, если он
забыл транспонировать матрицу алгебраических дополнений, что яв-
ляется довольно распространенной ошибкой.
Для генерации квадратной матрицы
A
(порядка
п
) зададим ее
определитель небольшим случайным числом, отличным от нуля и