Re: Plus sets in mathematica..?

• To: mathgroup at smc.vnet.net
• Subject: [mg75959] Re: Plus sets in mathematica..?
• From: dimitris <dimmechan at yahoo.com>
• Date: Mon, 14 May 2007 03:34:46 -0400 (EDT)
• References: <f26ocl\$4tn\$1@smc.vnet.net>

```=CE=9F/=CE=97 changbo =CE=AD=CE=B3=CF=81=CE=B1=CF=88=CE=B5:
> I want to make a function "f", its domain is every thinkable two sets, and
> the result is  {a+b | a=E2=88=88A,b=E2=88=88B} for A,B.
>
>  ex) A={1,2,3}, B={40,50,60,70},
>  then I have f[A,B] as
>  {41,42,43,51,52,53,61,62,63,71,72,73}.
>
> How can I construct function "f"? Let me know the source.. Thank you very
> much

I am sure they must be various ways. As regards timing issues I am not
the person

Anyway, the easiest thing that comes in my mind is:

In[36]:=
A={1,2,3};
B={40,50,60,70};
Flatten@Outer[Plus,B,A]

Out[38]=
{41,42,43,51,52,53,61,62,63,71,72,73}

where

In[39]:=
Information["Outer", LongForm -> False]

"Outer[f, list1, list2, ... ] gives the generalized outer product of
the listi, forming all possible combinations of the \
lowest-level elements in each of them, and feeding them as arguments
to f. Outer[f, list1, list2, ... , n] treats as separate \
elements only sublists at level n in the listi. Outer[f, list1,
list2, ... , n1, n2, ... ] treats as separate elements only \
sublists at level ni in the corresponding listi."*Button[More=E2=80=A6,
ButtonData :> "Outer", Active -> True,

As an one-liner

In[4]:=
f[o_,e_,he_]:=Flatten@Outer[he,o,e]

Example

In[5]:=
f[A,B,Plus]

Out[5]=
{41,51,61,71,42,52,62,72,43,53,63,73}

In[9]:=
f[Table[Random[], {3}], CharacterRange["a", "e"], Times]

Out[9]=
{0.758958 a,0.758958 b,0.758958 c,0.758958 d,0.758958 e,0.441985 a,
0=2E441985 \
b,0.441985 c,0.441985 d,0.441985 e,0.344708 a,0.344708 b,0.344708 c,
0=2E344708 \
d,0.344708 e}

Dimitris

```

• Prev by Date: Compatibility woes
• Next by Date: Re: Shadows in Mathematica 6
• Previous by thread: Re: Plus sets in mathematica..?
• Next by thread: Re: Plus sets in mathematica..?