Haskell — Multiconjunts

Aquest exercici explora la generació exhaustiva de multiconjunts.

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

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

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

  4. Feu una funció multisets4 :: Int -> Int -> Int -> Int -> [[Int]] que, donats quatre naturals n,t,xn,t,x i yy, retorni tots els multiconjunts de tt nombres que es poden formar amb [1..n][1..n] de forma que cada nombre aparegui entre xx i yy 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