load("__common__.sage")
def generator():
n=choice([4,5,6])
vec=[]
for i in range(0,n):
vec.append(vector([ randrange(-5,5),randrange(-5,5), randrange(-5,5),randrange(-5,5)]))
span = choice([false,true])
if span==false:
if choice([false,true]):
vec[2] = randrange(-3,3)*vec[0]+randrange(-4,4)*vec[1]
for i in range (3,n):
vec[3] = randrange(-3,3)*vec[0]+randrange(-3,3)*vec[1]+randrange(-3,3)*vec[2]
A=matrix(vec).transpose()
if rank(A)<4:
span = false
else:
span = true
xs=[var("x_"+str(i+1)) for i in range(0,n)]
vectorComb = linearCombination(xs,[column_matrix(v) for v in vec])
return {
"spans": span,
"vecset": vectorSet(vec),
"vecComb": vectorComb,
"prompt": choice([true,false]),
"matrix": A,
"rref": A.rref(),
}