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