Re: Re: Timing
- To: mathgroup at smc.vnet.net
- Subject: [mg88011] Re: [mg87971] Re: Timing
- From: "W_Craig Carter" <ccarter at mit.edu>
- Date: Mon, 21 Apr 2008 14:40:02 -0400 (EDT)
- References: <480A0EE6.3090109@csl.pl> <200804211038.GAA28042@smc.vnet.net>
Dear Artur, The previous method should work (in a very weak interpretation of work) if you replace the expr with; expr = Expand[((3 + 2 Sqrt[2])^(2^(n - 1) - 1) - (3 - 2 Sqrt[2])^(2^(n - 1) - 1))/(4 Sqrt[2])] Note: FullSimplify[Together[expr], Element[n, Integers]] is considerably simpler ((3 + 2*Sqrt[2])^2^(-1 + n)*(-4 + 3*Sqrt[2]) - (3 - 2*Sqrt[2])^2^(-1 + n)*(4 + 3*Sqrt[2]))/8 I can't immediately see that this result should be integer, but I am getting integers for the first 10 t = Table[nexpr /. n -> i, {i, 1, 10}] // Expand Map[IntegerQ, t] In general, Do is slow compared to Table, but it is the size of the expression that is the limiting factor here. On Mon, Apr 21, 2008 at 9:09 AM, Artur <grafix at csl.pl> wrote: > Dear Craig, > My problem is find such numbers n that expression > > > ((3 + 2 Sqrt[2])^(2^(n - 1) - 1) - (3 - 2 Sqrt[2])^(2^(n - 1) - 1))/(4 > Sqrt[2]) > is divisable by (2^n - 1) > > or another words (2^n - 1) is divisor of ((3 + 2 Sqrt[2])^(2^(n - 1) - 1) - > (3 - 2 Sqrt[2])^(2^(n - 1) - 1))/(4 Sqrt[2]) > > My procedure Do[ If[IntegerQ[Expand[((3 + 2 Sqrt[2])^(2^(n - 1) - 1) - (3 - > 2 Sqrt[2])^(2^(n - 1) - 1))/(4 Sqrt[2])]/(2^n - 1)], Print[n]], {n, 1, > 17}] > > is extremaly slow (probably Expand function do that as aslowly but without > Expand we don't have integers. I don't have idea how improove them. > Best wishes > Artur > > > > > > > > > > W_Craig Carter pisze: > > > > > Hello Artur, > > I am not sure I understand your question: > > > > Are you asking for > > Member[expr,Integers] && Element[n,Integers] > > for 1 <= n <= 17 ? > > > > If so, this may be a hint, although it does not exactly check the above: > > > > Map[Element[Rationalize[#, .00000001], Integers] & , > > Table[expr /. n -> i, {i, 1, 30}]] > > > > and it is reasonably fast. This approximate method gets worse for > > large n; so I don't trust the result except for n=1,3,5 > > > > Note, that > > Map[Element[Rationalize[Expand[#], .00000001], Integers] & , > > Table[expr /. n -> i, {i, 1, 10}]] > > > > Gives a different result and is much slower, thus emphasizing the > > result for large n. > > > > I am curious to see the better solutions.... > > > > On Mon, Apr 21, 2008 at 6:38 AM, Artur <grafix at csl.pl> wrote: > > > > > > > Who know how change bellow procedure to received reasonable timing? > > > > > > Part: > > > Expand[((3 + 2 Sqrt[2])^(2^(n - 1) - 1) - (3 - 2 Sqrt[2])^(2^(n - 1) - > > > 1))/(4 Sqrt[2])]/(2^n - 1) > > > is every time integer > > > > Timing[Do[ If[IntegerQ[Expand[((3 + 2 Sqrt[2])^(2^(n - 1) - 1) - (3 - > > > > 2 Sqrt[2])^(2^(n - 1) - 1))/(4 Sqrt[2])]/(2^n - 1)], > > > > Print[n]], {n, 1, 17}]] > > > > > > > I will be greatfull for any help! (Mayby some N[] or Floor[N[]] or > > > Int[N[]] will be quickest > > > > > > Best wishes > > > Artur > > > > > > > > > > > > > > > > > > > > > > > -- W. Craig Carter
- Follow-Ups:
- Re: Re: Re: Timing
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Re: Re: Timing
- References:
- Re: Timing
- From: Artur <grafix@csl.pl>
- Re: Timing