Re: How to make a loop for this problem!

• To: mathgroup at smc.vnet.net
• Subject: [mg75376] Re: How to make a loop for this problem!
• From: Albert <awnl at arcor.net>
• Date: Fri, 27 Apr 2007 05:24:29 -0400 (EDT)
• References: <f0pkt5\$28h\$1@smc.vnet.net>

```pskmaths 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.

if you use Random[Integer] then the entries will be either 0 or 1, not
anything in between. There are only 512 possibilities (9^3) of 3x3
Matrices containing 0 or 1 only. So it does not make much sense to
generate them this way...

> 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.

to generate 512 unique matrices with entries between 0 and 1 you could use:

matrixlist = Take[
Union[
Table[Array[Random[]&,{3,3}],{600}]
],
512
];

you can then access the 12th matrix with:

matrixlist[[12]]

The code above generates some extra matrices, then uses Union to delete
doubles and takes the first 512 unique matrices. Of course it could
happen that the 600-512 extra matrices are not enough, but I think that
is very very unlikely and easy to solve (in fact I think it almost never
happens that you will get a double at all!). Also note that the matrices
are sorted in some way when using Union. If that is a problem you can
use UnsortedUnion which is defined in the further examples section for
the documentation of Union...

hth,

albert

```

• Prev by Date: Re: How to make a loop for this problem!
• Next by Date: Re: Porting waveforms out of Mathematica and into a D/A converter
• Previous by thread: Re: How to make a loop for this problem!
• Next by thread: Re: How to make a loop for this problem!