For each positive real number $r$, define $a_0(r) = 1$ and $a_{n+1}(r) = \lfloor ra_n(r) \rfloor$ for all integers $n \ge 0$.
(a) Prove that for each positive real number $r$, the limit
\[ L(r) = \lim_{n \to \infty} \frac{a_n(r)}{r^n} \]
exists.
(b) Determine all possible values of $L(r)$ as $r$ varies over the set of positive real numbers.
[i]Here $\lfloor x \rfloor$ denotes the greatest integer less than or equal to $x$.[/i]
### Part (a)

To prove that for each positive real number \( r \), the limit
\[ L(r) = \lim_{n \to \infty} \frac{a_n(r)}{r^n} \]
exists, we will analyze the sequence \( a_n(r) \) and its behavior.

1. **Define the sequence \( L_n(r) \):**
   \[
   L_n(r) = \frac{a_n(r)}{r^n}
   \]
   We need to show that \( L_n(r) \) converges as \( n \to \infty \).

2. **Behavior of \( a_n(r) \):**
   By definition, \( a_{n+1}(r) = \lfloor r a_n(r) \rfloor \). This implies:
   \[
   a_{n+1}(r) \leq r a_n(r)
   \]
   and since \( \lfloor x \rfloor \) is the greatest integer less than or equal to \( x \),
   \[
   a_{n+1}(r) \geq r a_n(r) - 1
   \]

3. **Inequalities for \( L_n(r) \):**
   Dividing by \( r^{n+1} \), we get:
   \[
   \frac{a_{n+1}(r)}{r^{n+1}} \leq \frac{a_n(r)}{r^n}
   \]
   and
   \[
   \frac{a_{n+1}(r)}{r^{n+1}} \geq \frac{a_n(r)}{r^n} - \frac{1}{r^{n+1}}
   \]

4. **Monotonicity and boundedness:**
   The sequence \( L_n(r) \) is decreasing because:
   \[
   L_{n+1}(r) \leq L_n(r)
   \]
   Also, since \( a_n(r) \) are non-negative integers, \( L_n(r) \geq 0 \).

5. **Convergence:**
   Since \( L_n(r) \) is a decreasing sequence bounded below by 0, it converges to some limit \( L(r) \).

Thus, we have shown that the limit \( L(r) = \lim_{n \to \infty} \frac{a_n(r)}{r^n} \) exists for each positive real number \( r \).

### Part (b)

To determine all possible values of \( L(r) \) as \( r \) varies over the set of positive real numbers, we analyze the behavior of \( L(r) \) for different ranges of \( r \).

1. **Case \( 0 < r < 2 \):**
   - For \( r < 2 \), \( a_{n+1}(r) = \lfloor r a_n(r) \rfloor \) will eventually become 0 because \( r a_n(r) < 2 a_n(r) \) and the floor function will reduce it to 0.
   - Hence, \( L(r) = 0 \).

2. **Case \( r \geq 2 \):**
   - For \( r \geq 2 \), the sequence \( a_n(r) \) grows more steadily.
   - We need to find the range of \( L(r) \) for \( r \geq 2 \).

3. **Behavior for \( r \geq 2 \):**
   - For \( r \geq 2 \), \( a_{n+1}(r) \approx r a_n(r) \), and thus \( L_n(r) \approx L_{n-1}(r) \).
   - We can show that \( L(r) \) is in the interval \( \left( \frac{1}{2}, 1 \right] \).

4. **Intermediate value theorem and continuity:**
   - \( L(r) \) is continuous and increasing for \( r \geq 2 \).
   - By analyzing the behavior near \( r = 2 \) and \( r \to \infty \), we can show that \( L(r) \) covers the interval \( \left( \frac{1}{2}, 1 \right] \).

5. **Conclusion:**
   - Combining the results, we have:
     \[
     L(r) = \begin{cases}
     0 & \text{if } 0 < r < 2 \\
     \left( \frac{1}{2}, 1 \right] & \text{if } r \geq 2
     \end{cases}
     \]

The final answer is \( \boxed{ \{0\} \cup \left( \frac{1}{2}, 1 \right] } \)