match Array.countBy (fun x -> x = i + 1) array with
| [|(false, f); (true, t)|] -> t
| [|(true, t); (false,f)|] -> t
| [|(true,t)|] -> t
| [|(false,f)|] -> 0

というのは正しいのですか?ケースが増えるにしたがって、めっちゃ増えちゃう気がするんだけど、
ループとか関数で処理することはできないんでしょうか。