Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Q: extract all k-tuple from a list of n elements

  • To: mathgroup at smc.vnet.net
  • Subject: [mg49730] Re: Q: extract all k-tuple from a list of n elements
  • From: pnardon <pnardon at ulb.ac.be>
  • Date: Thu, 29 Jul 2004 07:45:34 -0400 (EDT)
  • References: <ce2fv9$8rm$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Klaus Duellmann wrote:
> Question: How can I extract all k-tuple from a list of n elements 
> (without considering permutations of the k-tuple)?
> 
> Example: For the special case k=3 one solution would be
> 
> Flatten[Table[{i, j, k}, {i, 1, n - 2}, {j, i + 1, n - 1}, {k, j + 1, 
> n}], 2];
> 
> A generalization of this solution for all k >=1 would involve to create 
> 'automatically' a table of dimension k, but how can this be implemented?
> 
> Any help is appreciated.
> 
> Regards,
> 
> Klaus
> 
TuTu[el_, n_] := Map[Sort[Join[el, {#}]] &, Complement[Range[n], el]];

ZaZa[x_, n_] := Complement[Flatten[Map[Sort[TuTu[#, n]] &, x], 1], {}];

ZZZ[m_, n_] := Module[{tmp},
     tmp = Complement[Flatten[Map[TuTu[{#}, n] &, Range[n]], 1], {}];
     Nest[ZaZa[#, n] &, tmp, m - 2]]

ZZZ will give the answer (be carefull m>1)

m gives the dimensions that you want
n gives the range needed

In[395]:=
ZZZ[8,10]

Out[395]=
{{1,2,3,4,5,6,7,8},{1,2,3,4,5,6,7,9},{
   1,2,3,4,5,6,7,10},{1,2,3,4,5,6,8,9},{1,2,3,4,5,6,8,10},{1,2,3,4,5,
 
6,9,10},{1,2,3,4,5,7,8,9},{1,2,3,4,5,7,8,10},{1,2,3,4,5,7,9,10},{1,2,3,4,
 
5,8,9,10},{1,2,3,4,6,7,8,9},{1,2,3,4,6,7,8,10},{1,2,3,4,6,7,9,10},{1,2,3,
 
4,6,8,9,10},{1,2,3,4,7,8,9,10},{1,2,3,5,6,7,8,9},{1,2,3,5,6,7,8,10},{1,2,
 
3,5,6,7,9,10},{1,2,3,5,6,8,9,10},{1,2,3,5,7,8,9,10},{1,2,3,6,7,8,9,10},{
     1,2,4,5,6,7,8,9},{1,2,4,5,6,7,8,10},{1,2,4,5,6,7,9,10},{1,2,4,5,6,8,9,
 
10},{1,2,4,5,7,8,9,10},{1,2,4,6,7,8,9,10},{1,2,5,6,7,8,9,10},{1,3,4,5,6,
     7,8,9},{1,3,4,5,6,7,8,10},{1,3,4,5,6,7,9,10},{1,3,4,5,6,8,9,10},{1,3,4,
 
5,7,8,9,10},{1,3,4,6,7,8,9,10},{1,3,5,6,7,8,9,10},{1,4,5,6,7,8,9,10},{2,
     3,4,5,6,7,8,9},{2,3,4,5,6,7,8,10},{2,3,4,5,6,7,9,10},{2,3,4,5,
 
6,8,9,10},{2,3,4,5,7,8,9,10},{2,3,4,6,7,8,9,10},{2,3,5,6,7,8,9,10},{2,4,
     5,6,7,8,9,10},{3,4,5,6,7,8,9,10}}

-- 
Pasquale Nardone 


UniversitÂ? Libre de Bruxelles
Physique GÂ?nÂ?rale CP 231,
Sciences-Physique-AgrÂ?gation
Bld du Triomphe, 2
1050 Bruxelles, Belgium
tel:	+32.2.6505515
tel secr:	+32.2.6505618
fax:	+32.2.6505332

web: http://homepages.ulb.ac.be/~pnardon/
ou encore http://physinfo.ulb.ac.be/


  • Prev by Date: Re: Combinations
  • Next by Date: RE: Any ways to recover a broken file?
  • Previous by thread: RE: Q: extract all k-tuple from a list of n elements
  • Next by thread: Re: Q: extract all k-tuple from a list of n elements