If n is large enough, your expected
value should approach the mean of the
distribution.
Yes that's correct.
So probability that value is greater
than expected value should be 0.5.
This would only be correct if the distribution is symmetric - which in your game isn't the case. You can see this easily if you think about what the median value of your winnings should be after $n$ throws.
You can think of your problem as a random walk. A basic one-dimensional random walk is a walk on the integer real line, where at each point we move $\pm 1$ with probability $p$. This is exactly what you have if we ignore the doubling/halving of money and set $p=0.5$. All we have to do is remap your coordinate system to this example. Let $x$ be your initial starting pot. Then we remap in the following way:
x*2^{-2} = -2
x*2^{-1} = -1
x = 0
x*2 = 1
i.e. $2^k x=k$. Let $S_n$ denote how much money we have made from the game after $n$ turns, then
\begin{equation}
\Pr(S_n = 2^k x) = 2^{-n} \binom{n}{(n+k)/2}
\end{equation}
for $n \ge (n+k)/2 \ge 0$.
When $(n+k)$ isn't a multiple of 2, then $\Pr(S_n)=0$. To understand this, assume that we begin with £10. After $n=1$ turns, the only possible values are £5 or £20, i.e. $k=-1$ or $k=1$.
The above result is a standard result from Random walks. Google random walks for more info. Also from random walk theory, we can calculate the median return to be $x$, which is not the same as the expected value.
Note: I have assumed that you can always half your money. For example, 1pence, 0.5pence, 0.25pence are all allowed. If you remove this assumption, then you have a random walk with an absorbing wall.
For completeness
Here's a quick simulation in R of your process:
#Simulate 10 throws with a starting amount of x=money=10
#n=10
simulate = function(){
#money won/lost in a single game
money = 10
for(i in 1:10){
if(runif(1) < 0.5)
money = money/2
else
money = 2*money
}
return(money)
}
#The Money vector keeps track of all the games
#N is the number of games we play
N = 1000
Money = numeric(N)
for(i in 1:N)
Money[i]= simulate()
mean(Money);median(Money)
#Probabilities
#Simulated
table(Money)/1000
#Exact
2^{-10}*choose(10,10/2)
#Plot the simulations
plot(Money)