　一つ目の条件から $f(x)$ は $x$ を $47$ で割った余りのみに依存する．以下，合同式で $\mathop{\mathrm{mod}} 47$ を省略する．\
　二つ目の条件を書き下すと，以下のようになる：
$$f(f(x)f(y)-1)f(z)\equiv f(x)f(f(y)f(z)-1).$$
$S=\\{f(x) \mid x\in\mathbb Z\\}$ とおけば，これは任意の $x,y,z\in S$ に対して
$$ f(xy-1)z\equiv xf(yz-1) \tag{\*}$$
が成立することと同値である．いま，以下のようにおく（三つ目の条件は，これが空でないことを意味する）：
$$ T = \begin{cases} S\setminus\\{0\\} & (0\in S) \\\\ S & (0\notin S) \end{cases}$$
　ここで，（$0\in S$ であったとして）$(\*)$ の $x,y,z$ それぞれ一つずつに $0$ を代入すると，いずれも $f(-1)=0$ と同値となる．$47$ が素数であることから，$T$ の各元は $\mathop{\mathrm{mod}} 47$ において「割り算」を行えることに注意すれば，二つ目の条件は結局，任意の $x,y,z\in T$ に対して
$$\dfrac{f(xy-1)}{x}\equiv\dfrac{f(yz-1)}z \tag{A}$$
かつ $0\in S \implies f(-1)=0$ と言い換えられる．\
　$(\text{A})$ によって，任意の $x,y\in T$ について $g(y) \equiv \dfrac{f(xy-1)}x$ なる関数 $g\colon T\to\mathbb{Z}$ をとることができる．このとき，
$$\frac{g(x)}{x} \equiv \dfrac{f(xy-1)}{xy} \equiv \frac{g(y)}{y}.$$
すなわち，$g(x)\/x$ は $\mathop{\mathrm{mod}} 47$ で $x\in T$ によらないから，この定数を $k$ とおく（ここで $k$ は $0$ 以上 $46$ 以下の整数であるとしてよい）．このとき $f(xy-1)=kxy$ であり（$(\text{A})$ はここから自動的に従うことに注意），特に
$$x,y\in T \implies kxy\in T \tag{B}$$
である．また，三つ目の条件から $k\neq 0$ が従う．\
　さて，$r$ を $\mathop{\mathrm{mod}}47$ における原始根とし（たとえば $r=5$），$k=r^t$ なる整数 $0\leq t\lt 46$ をとる．さらに，$T=\\{r^{u-t} \mid u\in U\\}$ なる $U\subset\\{0,1,2,\ldots,45\\}$ をとる．以下，整数 $n$ を $46$ で割った余りを $n\\,\\%\\,46$ で表すことにすると，$(\text{B})$ は
$$u,v\in U\implies (u+v)\\,\\%\\,46\in U$$
と言いかえられるから，$U$ はある $46$ の約数 $d$ によって $U=\\{id\\,\\%\\,46 \mid i\in\mathbb Z\\}$ と表せる．すなわち $T=\left\\{\dfrac{r^{id}}k \mathrel{}\middle|\mathrel{} i\in\mathbb Z\right\\}$ である．このとき $\lvert T\rvert =46\/d$ である．いま，$\\{xy-1 \mid x,y\in T\\}=\left\\{\dfrac{r^{id}}{k^2}-1 \mathrel{}\middle|\mathrel{} i\in\mathbb Z\right\\}$ に注意して
$$ \mathcal{S} =\left\\{\dfrac{r^{id}}{k^2}-1 \mathrel{}\middle|\mathrel{} i\in\mathbb Z\right\\} \cup \begin{cases}   \\{-1\\} & (0\in S) \\\\ \emptyset & (0\notin S) \end{cases} $$
とおけば，条件をみたす $f$ は以下のように特徴付けられる：
$$ f(x) = \begin{cases} k(x+1) & (x\in\mathcal{S}) \\\\ \text{任意の}\\, S\\, \text{の元} & (x\notin\mathcal{S}) \end{cases} $$
　以上の議論によって，$k=1,2,\ldots,46$ および $46$ の約数 $d$ を固定したとき，$D=46\/d$ とおけば，$0\in S$ なる $f$ は $(D+1)^{46-D}$ 個，$0\notin S$ なる $f$ は $D^{47-D}$ 個あることになる．すなわち，求める場合の数 $N$ は以下で与えられる：
$$N=46\sum_{D\mid46}\bigl((D+1)^{46-D}+D^{47-D}\bigr)=46(1+2^{45}+2^{45}+3^{44}+23^{24}+24^{23}+46+1).$$
　$N\/46$ を $3,16,47$ それぞれで割った余りは，Fermatの小定理やLTEの補題を用いることで $2,2,1$ と計算できるから，$N\/46\equiv-46\pmod{47\times48}$ であり，以上により求める余りは
$$N\equiv -46\times46\equiv 46(47\times48-46)=\mathbf{101660}\pmod{46\times47\times48}.$$
公式解説
https://onlinemathcontest.com/contests/omc174/editorial/6020
　関数 $f\colon\mathbb{Z}\to\\{0,1,2,\ldots,46\\}$ であって，次の条件をすべてみたすものの個数を，$46\times47\times 48$ で割った余りを求めてください.

- 任意の整数 $x$ に対して $f(x+47)=f(x)$．
- $F(x,y)=f(x)f(y)-1$ とすると，任意の整数 $x,y,z$ に対して
$$F(F(x,y),z)\equiv F(x,F(y,z))\pmod{47}.$$
- 上と同じ $F$ について，$f(F(x,y))\neq0$ なる整数 $x,y$ が存在する．

ただし，$\mathbb{Z}$ は整数全体からなる集合です．