Número de emparejamientos de amigos
El problema del número de emparejamiento de amigos consiste en calcular el número de formas de emparejar n amigos teniendo en cuenta que cada uno puede permanecer soltero o puede ser emparejado con algún otro amigo y que cada amigo puede ser emparejado sólo una vez. Por ejemplo, los 4 posibles emparejamientos de 3 amigos son
{1}, {2}, {3} {1}, {2, 3} {1, 2}, {3} {1, 3}, {2}
Definir la función
nEmparejamientos :: Integer -> Integer
tal que (nEmparejamientos n) es el número de formas de emparejar a los n amigos. Por ejemplo,
nEmparejamientos 2 == 2 nEmparejamientos 3 == 4 nEmparejamientos 4 == 10 nEmparejamientos 10 == 9496 nEmparejamientos 30 == 606917269909048576 length (show (nEmparejamientos3 (10^4))) == 17872