　任意の $A$ の元 $x$ について $g(x)=f(x)-x$ とすると，$g$ は $A$ から $A$ への関数であるとみなせる．$g$ としてありうるものの数を求めればいい．$2$ つ目の条件は $g^2(a_n)=a_{n+1}$ と言い換えられるので，$g^{2k}(a_n) = a_n$ となる最小の $k$ は各 $n$ について $3$ である．従って，$g^{t}(a_n) = a_n$ となる最小の $t$ は各 $n$ について $3, 6$ のいずれかである：

- 長さ $6$ のサイクルがあるとき，${}\_{7}\mathrm{C}\_{6}\times 5! \times 7^1=5880$ 通り．
- 長さ $3$ のサイクルが $2$ つあるとき，$70\times (2!)^2\times 7^1=1960$ 通り．
- 長さ $3$ のサイクルが $1$ つ以上あるとき，${}\_{7}\mathrm{C}\_{3}\times 2! \times 7^4-1960=166110$ 通り．

以上により，求める場合の数は $5880 + 166110 = \mathbf{171990}$ 通りである．

![figure 1](\/images\/H53801z0KonMvqk4sL4xtWb8xnLlCv53LdRESF7Z)
公式解説
https://onlinemathcontest.com/contests/omc160/editorial/5823
　 $A=\lbrace 1, 2, 3, 4, 5, 6, 7\rbrace$ とします．$A$ の各元に対して定義され整数値をとる関数 $f$ であって，以下をともにみたすものはいくつありますか？

- 任意の $A$ の元 $a$ に対して，$a\lt f(a)\lt a+8$．
- 相異なる $A$ の $3$ 元 $a_1, a_2, a_3$ であって，$n = 1,2,3$ について$$f\bigl(f(a_n)-a_n\bigr)-f(a_n)=a_{n+1}-a_n$$がすべて成り立つようなものが存在する．ただし $a_4 = a_1$とする．