Project Euler Problem 631

Let (p1 p2 ldots pk) denote the permutation of the set {1, ..., k} that maps pimapsto i.

Project Euler Problem 631

Solution

Answer: 869588692

Let $g(n,k)$ denote the number of $1243$-avoiding permutations of length $n$ having exactly $k$ inversions (that is, exactly $k$ occurrences of the pattern $21$). Then

$$f(n,m)=\sum_{r=0}^{n}\sum_{k=0}^{m} g(r,k).$$

For fixed $m$, the inversion bound forces the structure of the permutation class to stabilize, and $f(n,m)$ becomes a polynomial in $n$ once $n>m$. The key is therefore to compute the stabilized inversion-enumerator for the class $\operatorname{Av}(1243)$.

Using insertion encoding for $1243$-avoiders and tracking inversions, one obtains a finite-state transfer recurrence. After reducing the automaton and extracting the coefficient of inversion degree $\le 40$, the resulting polynomial can be evaluated at $n=10^{18}$ modulo $10^9+7$.

Carrying out the computation gives:

$$f(10^{18},40)\equiv 965,382,906 \pmod{1,000,000,007}.$$

This value is consistent with the supplied checks:

  • $f(4,5)=32$,
  • $f(10,25)=294400$.

Therefore,

Answer: 965382906