Re: [math-fun] a perplexing asymmetry
I wrote
Naively, one would expect the difference between f(n) and n/2 to be positive as often as it is negative.
Taking one step beyond naive arguments, I can make up a sort of half-convincing story about the asymmetry: Take a snapshot of the system after t steps, and let a_n be the number of sites occupied by exactly n particles. For r = -1, 0, and 1, let A(r) be the sum of a_n for all n congruent to r mod 3. If t is on the order of log n or larger, we'll see a_1 > a_2 > a_3 > ..., so A(1) = a_1 + a_4 + a_7 + ... > a_2 + a_5 + a_8 + ... = A(-1), which means that the rounding down of numbers of the form k + 1/3 has more impact that the rounding up of numbers of the form k - 1/3, so there's an extra rightward bias, and less mass disappears from the system than one might expect from the mass-flow approximation. But this story can't be *that* true, since sometimes f(n) *does* equal n/2. So how come f(n) is never less than than n/2? (Or maybe one does get f(n) < n/2 for larger values of n than I've looked at.) The n/2 cut-off is still quite mysterious to me! Here are some other things I'd like to know: (1) How big can |f(n) - n/2| be? I suspect it's O(log n). (For n up through 500, f(n) - n/2 ranges between 0 and 7/2.) (2) For how many consecutive n's can f(n) take on the same value? Conversely, for how many consecutive n's can f(n) steadily increase by 1? (It's easy to show that f(n+1) is either f(n) or f(n)+1.) (3) What's the best way to compute f(n)? It would be good to know ahead of time two numbers L(n) and T(n) such that if you replace the infinite one-dimensional lattice {1,2,3,...} by the finite interval {1,2,3,...,L(n)} and run the arithmetic rule for T(n) steps, with particles that leave 1 going leftward being absorbed at 0 and particles that leave L(n) going rightward being ignored, then f(n) is just n minus the number of particles that have been absorbed at 0 by time T(n). It would also be good to have a proof of the empirical assertion that if the number of particles at 0 remains constant for three successive time steps, it never changes again. I wrote a twelve-line recursive Mathematica program to compute f(n), but it wasted too much time recomputing things, and when I replaced "f[n_] := ..." by "f[n_] := f[n] = ..." the way you're supposed to, it introduced all kinds of flakey behavior that I don't understand, so I eventually gave up in defeat --- though it's painful to have spent time coming up with a really meaty Mathematica expression like Join[Drop[Map[Function[x, Round[x/3]], L], 1], {0, 0}] + Prepend[Map[Function[x, Round[(2*x)/3]], L], 0] and then find out you can't fix the program that houses that meaty expression at its center! If any of you want to tinker with my code and get it to work, I'd be glad to send it to you. Incidentally, if n is a power of 2, f(n) has a nice interpretation in terms of modeling of random walk on a finite-precision binary computer. To see this, let's look at the case n = 8 again, but this time we'll add an extra column at the left to keep track of the particles absorbed at 0, and we'll divide all the entries in the table by n = 8: 0 1 0 0 0 ... 3/8 0 5/8 0 0 ... 3/8 1/4 0 3/8 0 ... 1/2 0 1/4 0 1/4 ... ........................... We can understand this as an attempt to simulate the exact mass-flow 0 1 0 0 0 ... 1/3 0 2/3 0 0 ... 1/3 2/9 0 4/9 0 ... 11/27 0 8/27 0 8/27 ... ............................... using three-bit fixed-point binary arithmetic. And this mass flow is precisely the mass-flow associated with a biased random walk in which one steps to the right with probability 2/3 and to the left with probability 1/3. (If you're wondering how I came up with this numerical dynamical system, now you know: I was studying round-off error for this kind of numerical simulation of heat/mass/probability flow.) Jim Propp
participants (1)
-
James Propp