Tracks
/
Julia
Julia
/
Temario
/
Conjuntos
Co

Conjuntos en Julia

1 ejercicio

Acerca de Conjuntos

Un Set es una colección de elementos con las siguientes propiedades:

  • Sin orden.
  • Las entradas son únicas, por lo que los intentos de añadir duplicados se ignoran sin más.
  • Admite muchas de las operaciones habituales con los conjuntos matemáticos.

Créalos con el constructor Set(), usando cualquier iterador como parámetro.

julia> s1 = Set(1:4)
Set{Int64} with 4 elements:
  4
  2
  3
  1

Añade elementos nuevos con push!() (igual que con los arrays) y elimínalos con delete!().

julia> push!(s1, 5)
Set{Int64} with 5 elements:
  5
  4
  2
  3
  1

# Duplicates are ignored
julia> push!(s1, 3)
Set{Int64} with 5 elements:
  5
  4
  2
  3
  1

julia> delete!(s1, 5)
Set{Int64} with 4 elements:
  4
  2
  3
  1

julia> length(s1)  # length counts entries, despite the non-sequential type
4

Operaciones con conjuntos

Al igual que con otros tipos de colecciones, comprueba la pertenencia con el operador in o ∈ (escribe \in y luego tabulador para obtener el símbolo).

julia> 3 ∈ s1
true

Se admiten las siguientes operaciones sobre pares de conjuntos (los atajos al símbolo del operador se muestran entre paréntesis).

  • union(A, B) o A ∪ B (\cup): todas las entradas que están en A, en B o en ambos.
  • intersect(A, B) o A ∩ B (\cap): todas las entradas comunes a A y B.
  • setdiff(A, B) (sin símbolo): las entradas que están en A pero no en B.
  • symdiff(A, B) (sin símbolo): las entradas que están en A o en B, pero no en ambos.
  • issubset(A, B) o A ⊆ B (\subseteq) o B ⊇ A (\supseteq): true si todas las entradas de A están también en B.
  • issetequal(A, B) (sin símbolo): true si A y B contienen exactamente las mismas entradas.
  • isdisjoint(A, B) (sin símbolo): true si A y B no tienen ninguna entrada en común (por lo que la intersección está vacía).
s1 = Set(1:4)
s2 = Set(3:6)

julia> s1 ∪ s2  # union
Set{Int64} with 6 elements:
  5
  4
  6
  2
  3
  1

julia> s1 ∩ s2  # intersect
Set{Int64} with 2 elements:
  4
  3
  
julia> setdiff(s1, s2)
Set{Int64} with 2 elements:
  2
  1

julia> symdiff(s1, s2)
Set{Int64} with 4 elements:
  5
  6
  2
  1
  
julia> s1 ⊇ s2  # issubset
false

También hay versiones mutables de muchas de estas operaciones, con un ! añadido al nombre de la función. Consulta el manual para ver la lista completa de funciones.

Editar en GitHub El enlace se abre en una nueva ventana o pestaña

Aprende Conjuntos