Número medio
Un número medio es número natural que es igual a la media aritmética de las permutaciones de sus dígitos. Por ejemplo, 370 es un número medio ya que las permutaciones de sus dígitos es 073, 037, 307, 370, 703 y 730 cuya media es 2220/6 que es igual a 370.
Definir las siguientes funciones
numeroMedio :: Integer -> Bool densidadesNumeroMedio :: [Double] graficaDensidadNumeroMedio :: Int -> IO ()
tales que
- (numeroMedio n) se verifica si n es un número medio. Por ejemplo,
λ> numeroMedio 370 True λ> numeroMedio 371 False λ> numeroMedio 485596707818930041152263374 True λ> filter numeroMedio [100..600] [111,222,333,370,407,444,481,518,555,592] λ> filter numeroMedio [3*10^5..6*10^5] [333333,370370,407407,444444,481481,518518,555555,592592]
- densidades es la lista cuyo elemento n-ésimo (empezando a contar en 1) es la densidad de números medios en el intervalo [1,n]; es decir, la cantidad de números medios menores o iguales que n dividida por n. Por ejemplo,
λ> mapM_ print (take 30 densidades) 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.9 0.9090909090909091 0.8333333333333334 0.7692307692307693 0.7142857142857143 0.6666666666666666 0.625 0.5882352941176471 0.5555555555555556 0.5263157894736842 0.5 0.47619047619047616 0.5 0.4782608695652174 0.4583333333333333 0.44 0.4230769230769231 0.4074074074074074 0.39285714285714285 0.3793103448275862 0.36666666666666664
- (graficaDensidadNumeroMedio n) dibuja la gráfica de las densidades de los intervalos [1,k] para k desde 1 hasta n. Por ejemplo, (graficaDensidadNumeroMedio 100) dibuja

y (graficaDensidadNumeroMedio 1000) dibuja
