MathGroup Archive 2011

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

Search the Archive

Re: how to calculate an index and vice versa

  • To: mathgroup at smc.vnet.net
  • Subject: [mg119296] Re: how to calculate an index and vice versa
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Sun, 29 May 2011 07:37:57 -0400 (EDT)

ss = Subsets[Range[90], {4}];

Length[ss] == Binomial[90, 4]

True

assocIndex[elem_] := Position[ss, elem][[1, 1]] - 1

assocIndex[{1, 2, 3, 7}]

3

assocIndex[{10, 41, 60, 61}]

954721

assocIndex[{87, 88, 89, 90}]

2555189

Note that since you you started your index at zero your index numbers for your last two examples are off by one.


Bob Hanlon

---- ferradini <gianmarco.ferradini at email.it> wrote: 

=============
given n numbers (eg. 1 to 90)
I can build the following list of numbers k (in this case 4)

1, 2, 3, 4 associated index -> 0
1, 2, 3, 5 associated index -> 1
1, 2, 3, 6 associated index -> 2
1, 2, 3, 7 associated index -> 3
1, 2, 3, 8 ................... ....
1, 2, 3, 9 .......................
.......................
.......................
10, 41, 60, 61 associated index -> 954722
.......................
.......................
87, 88, 89, 90 associated index -> 2555190
I need to build an algorithm to assign eg 4 elemnti can obtain its index 
in the list
(1, 2, 3, 7 return 3)

The second algorithm is 'inverse: given a number such as 954722 I get 
the four elements 87; 88, 89, 90.
The elemnti in the list are always sorted values.

I thank those who will send me information on the subject to follow
Thank ferradini




  • Prev by Date: Re: how to calculate an index and vice versa
  • Next by Date: Re: CreateCellID
  • Previous by thread: Re: how to calculate an index and vice versa
  • Next by thread: Re: how to calculate an index and vice versa