I have been playing around with interesting integer sequences and came across [Schröder number][1] which defines the number of lattice paths of n x n grid. The recurrence formula to calculate these numbers is as follows: $$ S_n = 3S_{n-1} + \sum_{k=1}^{n-2}S_kS_{n-k-1} \text{ for }n\ge2 \text{ with } S_0 =1, S_2=2 $$ The first few numbers in the sequence are: $$ 1, 2, 6, 22, 90, 394, 1806, 8558 $$ I was curious about the following ratio and its limit: $$ \lim_{n\rightarrow\infty}\frac{S_{n-1}}{S_{n}} = ? $$ So I wrote a small C++ program with mixed-precision to handle the large numbers and surprisingly there appears to be an asymptote that is not zero. So far my little program has reached n = 20,000, but it's slowing down significantly as the numbers are getting truly large but it has given a preliminary result of $$ \lim_{n\rightarrow\infty}\frac{S_{n-1}}{S_{n}} = 0.17158... $$ My question now is, is this simply a ghost limit for not having gone far enough, or does a limit exist that is not zero? My math expertise is lacking somewhat to attempt to find that limit analytically (can it even be done?). If a limit exists would it imply that, for large n, the number of additional lattice paths of a n x n grid only increases by about 17% by expanding the grid by 1? Code for anyone who wants to try it for themselves: ```code #include <iostream> #include <gmp.h> #include <gmpxx.h> #include <vector> void schroder(std::vector<mpz_class>& n_vec); int main(int argc, char **argv) { int n=2; int n_max; std::cout << "Enter n_max: "; std::cin >> n_max; std::vector<mpz_class> s = {mpz_class(1), mpz_class(2)}; while (n<n_max){ mpq_class div (s[s.size()-2],s.back()); gmp_printf ("%d\t %.*Ff\n", n, 100, mpf_class(div,500)); schroder(s); n++; } return 0; } void schroder(std::vector<mpz_class>& n_vec){ int n = n_vec.size(); mpz_class sum = mpz_class(0); for(int k = 1; k<=(n-2); k++){ sum += n_vec[k]*n_vec[n-k-1]; } sum += 3*n_vec[n-1]; n_vec.push_back(sum); } ``` [1]: https://en.wikipedia.org/wiki/Schr%C3%B6der_number