Re: How to make a loop for this problem!
- To: mathgroup at smc.vnet.net
- Subject: [mg75369] Re: How to make a loop for this problem!
- From: Ray Koopman <koopman at sfu.ca>
- Date: Fri, 27 Apr 2007 05:20:46 -0400 (EDT)
- References: <f0pkt5$28h$1@smc.vnet.net>
On Apr 26, 12:38 am, pskma... at googlemail.com wrote: > Hi all, > > This comand: > A = Array[Random[Integer] &, {3, 3}] > generates a 3x3 random matrix its terms between 0 and 1. > > I need to make a loop that geerates a finite number of matrices, let's > say 512 and this loop check that non of the matrices is equal to > another one (no repeated matrices) > > I can geerate thoses random, matrices with this command: > Do[Print[Array[Random[Integer] &, {3, 3}]], {512}] > but I may have two matrices that are equal and also as far as I know I > cann't use the out put because of the command, Print. This will generate m different random n x n binary matrices, but it will work only for small n's because it takes a simple-minded approach to selecting m different random integers in Range[2^n^2]. gen[m_Integer?Positive, n_Integer?Positive] /; m <= 2^n^2 := Partition[#,n]& /@ IntegerDigits[ Ordering[ Table[Random[],{2^n^2}], m] - 1, 2, n^2] gen[16,2] {{{0,1},{0,0}}, {{0,0},{0,0}}, {{1,0},{1,0}}, {{1,1},{1,1}}, {{0,0},{1,0}}, {{1,1},{0,1}}, {{0,1},{1,0}}, {{0,0},{0,1}}, {{1,1},{1,0}}, {{0,1},{1,1}}, {{1,0},{0,0}}, {{0,1},{0,1}}, {{1,0},{1,1}}, {{0,0},{1,1}}, {{1,1},{0,0}}, {{1,0},{0,1}}} gen[16,5] {{{1,0,1,0,1},{1,0,1,1,0},{1,0,0,1,1},{0,1,1,0,0},{0,0,1,0,0}}, {{1,0,1,1,0},{1,0,0,1,0},{0,0,1,0,1},{1,0,1,0,0},{1,1,1,1,1}}, {{1,1,1,0,0},{0,0,0,1,1},{0,0,1,1,1},{1,1,1,0,1},{0,1,1,0,0}}, {{1,0,0,1,1},{1,1,1,0,0},{1,0,0,1,1},{1,0,0,1,1},{1,0,1,1,0}}, {{0,1,1,1,0},{1,1,1,0,0},{1,0,1,1,0},{0,0,0,0,0},{1,0,0,0,0}}, {{0,0,1,0,1},{1,0,1,0,0},{0,1,1,0,1},{0,0,1,0,0},{0,1,0,1,1}}, {{0,1,0,0,1},{0,1,1,1,0},{1,1,1,0,0},{0,1,1,1,0},{0,1,1,0,1}}, {{1,0,0,0,0},{0,1,1,1,0},{0,1,1,1,0},{0,1,0,0,0},{0,0,1,1,1}}, {{1,0,0,0,1},{1,1,0,0,1},{0,1,0,1,0},{0,1,1,0,1},{0,0,1,0,0}}, {{0,0,0,0,1},{0,0,1,1,1},{0,1,0,1,0},{0,0,1,0,1},{1,0,0,1,1}}, {{1,0,1,1,1},{0,1,1,0,1},{1,1,1,1,1},{0,0,1,0,0},{0,1,0,1,0}}, {{0,1,1,0,0},{1,1,0,0,1},{0,0,1,1,1},{0,0,0,0,1},{1,1,0,1,0}}, {{0,1,0,0,0},{0,1,0,1,0},{1,0,1,0,0},{0,1,0,0,1},{0,1,0,1,1}}, {{0,0,0,0,0},{1,1,1,0,0},{1,0,1,1,1},{0,0,0,0,1},{0,1,0,0,1}}, {{0,0,1,0,0},{1,0,1,0,0},{0,0,1,1,0},{1,1,0,0,0},{1,1,1,1,0}}, {{1,0,0,1,1},{1,0,0,0,0},{0,0,0,1,0},{1,1,0,0,0},{0,1,0,0,1}}}