Haskell — Multiconjunts

Aquest exercici explora la generació exhaustiva de multiconjunts.

1.  Feu una funció multisets1 :: Int -> Int -> [[Int]] que, donats dos
    naturals n i x, retorni tots els multiconjunts que es poden formar
    amb [1..n], de manera que cada nombre aparegui com a molt x vegades.

2.  Feu una funció multisets2 :: Int -> Int -> Int -> [[Int]] que,
    donats tres naturals n, x i y, retorni tots els multiconjunts que es
    poden formar amb [1..n], de manera que cada nombre aparegui entre x
    i y vegades.

3.  Feu una funció multisets3 :: Int -> Int -> [[Int]] que, donats dos
    naturals n i t, retorni tots els multiconjunts de t nombres que es
    poden formar amb [1..n].

4.  Feu una funció multisets4 :: Int -> Int -> Int -> Int -> [[Int]]
    que, donats quatre naturals n, t, x i y, retorni tots els
    multiconjunts de t nombres que es poden formar amb [1..n] de forma
    que cada nombre aparegui entre x i y vegades.

Observació

Per tal que no importi l’ordre en que genereu la solució, els jocs de
proves ordenen el resultat. Per a això, importeu la funció sort del
mòdul Data.List encara que no la feu servir.

Puntuació

Cada funció puntua 25 punts.

Informació del problema

Autoria: Jordi Petit

Generació: 2026-02-03T17:05:08.106Z

© Jutge.org, 2006–2026.
https://jutge.org
