We present an efficient algorithm for generating an n × n nonsingular matrix uniformly over a finite field. This algorithm is useful for several cryptographic and checking applications. Over GF[2] our algorithm runs in expected time M(n) + O(n2), where M(n) is the time needed to multiply two n × n matrices, and the expected number of random bits it uses is n2 + 3. (Over other finite fields we use n2 + O(1) random field elements on average.) This is more efficient than the standard method for solving this problem, both in terms of expected running time and the expected number of random bits used. The standard method is to generate random n × n matrices until we produce one with nonzero determinant. In contrast, our technique directly produces a random matrix guaranteed to have nonzero determinant. We also introduce efficient algorithms for related problems such as uniformly generating singular matrices or matrices with fixed determinant.
No takes yet. Share an insight, caveat, or question.
Dana Randall (1993) studied this question.
Synapse has enriched one closely related paper. Consider it for comparative context: