Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2013

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

Search the Archive

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...
> >
> >
>
>


  • Prev by Date: Re: steady state concetration
  • Next by Date: Using NDSolve solution as an initial condition for another NDSolve
  • Previous by thread: Re: List manipulation question - 2013
  • Next by thread: Re: List manipulation question - 2013