Re: List manipulation question - 2013
- To: mathgroup at smc.vnet.net
- Subject: [mg129627] Re: List manipulation question - 2013
- From: Lea Rebanks <lrebanks at gmail.com>
- Date: Thu, 31 Jan 2013 20:45:41 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20130130092653.09BA46877@smc.vnet.net>
Hi Bob, Many thanks for your excellent reply. Your coding for lists 1,2,3 is exactly what I want. And your statement - "Apparently you want list2 to consist of the members of list1 that are integer multiples of 24 rather than the integers in list1/24." is correct. But I tried changing the input values from the example given >From 24 + (15*n1) to 24 + (13*n1) .....15 to 13 >From 12 + (3*n2) to 12 + (7*n2) .....3 to 7 This immediately caused me error messages, some of which I was able to correct by expanding the list range of the Take function. But I was unable to calculate the last part for list3 :- list1 = Table[24 + (13*n1), {n1, 2000}]; list2 = Take[Select[list1, IntegerQ[#/24] &], 40]; list3 = n2 /. Solve[{12 + (7*n2) == #, Element[n2, Integers]}, n2][[1]] & /@ list2 Hopefully the result should look something like :- {1272, 3456, 5640, 7824, 10008, 12192} These values above being the first & then following repetitions thereafter of equal points of repetitions of n1 & n2 in list2 & list3 respectively. Please could you rewrite the enclosed code so that :- (i) The above new values work & provide a similar result to that which I have shown. (ii) Also, if possible, allow in the rewrite the flexibility within the function to accept much larger & challenging input values for list1 & 2. This would include a domain allowance relative to the size of input values as in this case its values are 13 & 7, but they could be integer values of 127 & 56 for list1 & list3 respectively. (Note higher value first.) Actually I will probably want to use much much higher values later. Ideally I am only looking for about 6 elements in the final answer list like - {1272, 3456, 5640, 7824, 10008, 12192} Many thanks for your help & attention. Really appreciated. Best regards, Lea... On Thu, Jan 31, 2013 at 11:05 AM, Bob Hanlon <hanlonr357 at gmail.com> wrote: > list1 = Table[24 + (15*n1), {n1, 2000}]; > > Take[Select[list1/24, IntegerQ], 9] > > {6, 11, 16, 21, 26, 31, 36, 41, 46} > > Take[Select[list1, IntegerQ[#/24] &], 9] > > {144, 264, 384, 504, 624, 744, 864, 984, 1104} > > Apparently you want list2 to consist of the members of list1 that are > integer multiples of 24 rather than the integers in list1/24. > > list2 = Select[list1, IntegerQ[#/24] &]; > > list3 = n2 /. Solve[ > {12 + (3*n2) == #, Element[n2, Integers]}, > n2][[1]] & /@ list2; > > Length[list2] == Length[list3] > > True > > > Bob Hanlon > > Consequently, there is an integer n2 for every element of list2. > > On Wed, Jan 30, 2013 at 4:26 AM, Lea Rebanks <lrebanks at gmail.com> wrote: > > > > Dear All, > > > > I have the follow problem with the combination of a few lists. > > I shall outline the problem or what I am trying to do. > > I know that to solve this problem requires a number of processes, but I > am > > not sure how to setup the coding to achieve my desired result. > > Please could someone show me the coding for this problem. > > > > The problem:- > > 1 - I have a list1 created from 24+(15*n1) All n1 are integers > > 1,2,3,4.....to a large number of integers. > > 2 - I want to divide the list1 by 24 and create another list2 with only > the > > integer results in list2. > > Table[24 + 15*i, {i, 100}]/24 ... so that integer results in > list2 > > = { 144, 264, 384, 504, 624, 744, 864, 984, 1104 } > > 3 - I have another list3 created from 12+(3*n2) All n2 are integers > > 1,2,3,4.....to a large number of integers. > > 4 - With list3 I want to find :- > > (i) The integer number of n2 that either equates 12+(3*n2) = 144 or > > the next FIRST available number in list2 that meets this equality. > > then also (ii)The integer number(s) of n2 that equates 12+(3*n2) = > 24+(15*n1) after the first equal value for say 6 repetitions. > > then also (iii)The integer number(s) of n1 that equates 12+(3*n2) = > > 24+(15*n1) after the first equal value for say 6 repetitions. > > > > The above example is quite simple, but I am hoping to setup the coding to > > work with other integer values instead of 3 & 15 which will present more > of > > a challenge. > > > > Any help or advice greatly appreciated. > > Best regards, > > Lea... > > > > > >
- References:
- List manipulation question - 2013
- From: Lea Rebanks <lrebanks@gmail.com>
- List manipulation question - 2013