to co chcesz obliczyć to "trinomial coefficient". to nie jest takie proste jak by Ci się mogło wydawać. imho najlepiej było by wyrazić t.c. w postaci sumy iloczynów symboli newtona ("binomial coefficient") http://bit.ly/NMXhmP i skorzystać z "lucas' theorem", aby prosto obliczyć wartość s.n. modulo liczba pierwsza (3). całość łączymy pamiętając o podstawowych prawach arytmetyki modulo: (a+b) mod n = (a mod n + b mod n) mod n i analogicznie dla mnożenia. powodzenia przy O(log n), chyba że ktoś znajdzie jakiś prosty wzór analogiczny do obliczenia wartości s.n. mod 2 który obliczamy błyskawicznie operacjami bitowymi.
co do sprytnej rekurencji to można zauważyć pewną zależność... dla pewnych n wszystkie współczynniki c mod 3 przyjmują wartość 1. są to n z ciągu http://oeis.org/A003462
zamiast jak w standardowej rekurencji zmniejszać n o 1 aż dojdziemy do n == 0, można wykorzystać tą wiedzę i od razu wchodzić głębiej:
F(n,k) = F(n-1, k) + F(n-1, k-1) + F(n-1, k-2) = F(n-4, k) + ... + F(n-4, k-8) = F(n-13, k) + ... + F(n-13, k-26) = ... mod 3
http://ideone.com/RARln tu moja implementacja