[Date Index]
[Thread Index]
[Author Index]
Re: multiplying sets
*Subject*: [mg2969] Re: multiplying sets
*From*: Jorma.Virtamo at vtt.fi (Jorma Virtamo)
*Date*: 17 Jan 1996 05:11:10 -0600
*Approved*: usenet@wri.com
*Distribution*: local
*Newsgroups*: wri.mathgroup
*Organization*: Wolfram Research, Inc.
*Sender*: mj at wri.com
Tommi Salminen <titosa at uta.fi> wrote:
>
> I have a problem as follows:
>
> I have a set, for instance: s={{a,b,c},{d,e},{f,g}}, and I would like
> to get a set t, that includes all possible multiplications between
> those three sets {a,b,c}, {d,e} and {f,g}.
>
> Of course, one way would be :
>
> Outer[Times,{a,b,c},{d,e},{f,g}], but I'd like find some kind
> of a more reasonable way to do it, because it would be just a part
> of a larger program. Anyway, it doesn't have to be some elegant way;
> if it works, it's OK.
>
I don't know what is wrong with the Outer. If you define
s1={a,b,c};
s2={d,e};
s3={f,g};
then Outer yields:
Outer[Times,s1,s2,s3] // Flatten
{a d f, a d g, a e f, a e g, b d f, b d g,
b e f, b e g, c d f, c d g, c e f, c e g}
Another way to write the same is for instance:
s3#& /@ s2#& /@ s1 // Flatten
with an identical result:
{a d f, a d g, a e f, a e g, b d f, b d g,
b e f, b e g, c d f, c d g, c e f, c e g}
Whether this is more reasonable way to write the expression
is rather a matter of taste. Personally, I would prefer Outer,
which also seems to be faster. Maybe you want something faster
than Outer?
-- Jorma Virtamo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jorma Virtamo VTT Information Technology
phone: +358 0 456 5612 Telecommunications
fax: +358 0 455 0115 P.O. Box 1202
email: jorma.virtamo at vtt.fi FIN-02044 VTT
web: http://www.vtt.fi/tte/ Finland
Prev by Date:
**Re: multiplying sets**
Next by Date:
**Re: HELP! algebraic math problem**
Previous by thread:
**Re: multiplying sets**
Next by thread:
**Triangulation Problem**
| |