# random(Type) -- random element of a type

## Synopsis

• Usage:
random T
• Inputs:
• Outputs:
• a random instance of the type T. If the Height option specifies a number h and T is ZZ and , then the integers returned are in the range 0 .. h-1; for QQ the numerator and denominator are in the range 1 .. h.
 ```i1 : random RR o1 = .758666467461991 o1 : RR (of precision 53)``` ```i2 : random CC_100 o2 = .0486467826695887594883302854102+.703570429190131228582251826438*ii o2 : CC (of precision 100)``` ```i3 : tally for i to 100 list random GF 11 o3 = Tally{-1 => 4 } -2 => 13 -3 => 15 -4 => 12 -5 => 11 0 => 10 1 => 13 2 => 7 3 => 4 4 => 8 5 => 4 o3 : Tally``` ```i4 : random GF(2,40) 38 37 36 34 33 32 28 24 21 20 19 17 o4 = a + a + a + a + a + a + a + a + a + a + a + a + ------------------------------------------------------------------------ 16 15 14 12 8 5 4 3 2 a + a + a + a + a + a + a + a + a + 1 o4 : GF 1099511627776```

## Synopsis

• Usage:
random(d,R)
• Inputs:
• Outputs:
• a random homogeneous element of the ring R of degree d
 `i5 : R = ZZ[x,y];` ```i6 : random(5,R) 5 4 3 2 2 3 4 5 o6 = 8x + 3x y + 9x y + 8x y + 8x*y + 6y o6 : R``` `i7 : R = GF(25,Variable=>a)[x,y];` ```i8 : VerticalList for i to 6 list random(3,R) { 3 2 2 3 } o8 = {- x + (a + 1)x y + (- a + 1)x*y + y } { 3 2 2 3 } {(a + 1)x + (2a + 1)x y - 2a*x*y + (a - 2)y } { 3 2 2 3 } {(2a + 2)x + 2a*x y + (2a + 2)x*y + (a - 2)y } { 3 2 2 3 } {- x - x y + (2a + 2)x*y + 2y } { 2 2 3 } {x y + a*x*y + (a + 1)y } { 3 2 2 3} {(- a - 1)x + (a - 1)x y + (- 2a - 2)x*y + (2a - 2)y } { 3 2 2 3 } {a*x + (a - 1)x y + (a - 1)x*y + (- 2a - 1)y } o8 : VerticalList```
The length of d, if it's a list, should be the same as degreeLength R.