       Re: how to sovle array which odd and even have difference recursive function

• To: mathgroup at smc.vnet.net
• Subject: [mg125266] Re: how to sovle array which odd and even have difference recursive function
• From: danl at wolfram.com
• Date: Sat, 3 Mar 2012 06:53:15 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <jiqfv7\$8d\$1@smc.vnet.net>

```On Friday, March 2, 2012 6:55:03 AM UTC-6, jie zhao wrote:
> RSolve[{(b[n] == 1 + b[n/2] && Mod[n, 2] == 0) && (b[n] == 1/=
n &&
> Mod[n, 2] == 1)}, b[n]==2, n]   failed to work !
>         when n  is odd   b[n] == 1/n
>         when n  is even  b[n] == 1 + b[n/2]

Could do as follows. Solve a symbolic recurrence with base an arbitrary odd, and successive elements equal to powers of 2 times that base. So it will be a recurrence in two variables (more accurately, in one variable, parametrized by another). Then put this to use on an arbitrary input by breaking it into 2^power*odd.

In:= bsol[o_, p_] =
First[RSolve[{b[odd, 0] == 1/odd,
b[odd, pwr] == 1 + b[odd, pwr - 1]},
b[odd, pwr], {odd, pwr}]] /. {odd -> o, pwr -> p};
f[n_] := Module[{pwr = IntegerExponent[n, 2], odd},
odd = n/2^pwr;
b[odd, pwr] /. bsol[odd, pwr]
]

In:= SetAttributes[f, Listable]

In:= f[Range]

Out= {1, 2, 1/3, 3, 1/5, 4/3, 1/7, 4, 1/9, 6/5, 1/11, 7/3, 1/13,
8/7, 1/15, 5,
1/17, 10/9, 1/19, 11/5}

Daniel Lichtblau
Wolfram Research

```

• Prev by Date: Save/DumpSave Interpolation doesn't work
• Next by Date: Re: Can you call 32 Bit DLLs from Mathematica 8.0 ?
• Previous by thread: how to sovle array which odd and even have difference recursive function
• Next by thread: Re: Can I solve this system of nonlinear equations?