In

Insiemi in Julia

1 esercizio

Informazioni su Insiemi

Un Set è una collezione di elementi con le seguenti proprietà:

  • Non ordinato.
  • Gli elementi sono unici, quindi i tentativi di aggiungere duplicati vengono ignorati silenziosamente.
  • Supporta molte delle operazioni comuni agli insiemi matematici.

Creali con il costruttore Set(), usando un qualsiasi iteratore come parametro.

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

Aggiungi nuovi elementi con push!() (come con gli array) e rimuovili 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

Operazioni sui Set

Come con diversi altri tipi di collezione, verifica l'appartenenza con l'operatore in o ∈ (usa \in e poi tab per ottenere il simbolo).

julia> 3 ∈ s1
true

Sono supportate le seguenti operazioni su coppie di Set (le scorciatoie per il simbolo dell'operatore sono mostrate tra parentesi).

  • union(A, B) o A ∪ B (\cup): tutti gli elementi in A o in B o in entrambi.
  • intersect(A, B) o A ∩ B (\cap): tutti gli elementi comuni sia ad A che a B.
  • setdiff(A, B) (nessun simbolo): gli elementi in A ma non in B.
  • symdiff(A, B) (nessun simbolo): gli elementi in A o in B ma non in entrambi.
  • issubset(A, B) o A ⊆ B (\subseteq) o B ⊇ A (\supseteq): true se tutti gli elementi in A sono anche in B.
  • issetequal(A, B) (nessun simbolo): true se A e B contengono esattamente gli stessi elementi.
  • isdisjoint(A, B) (nessun simbolo): true se A e B non contengono elementi in comune (quindi l'intersezione è vuota).
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

Esistono anche versioni mutanti di molte di queste operazioni, con ! aggiunto al nome della funzione. Vedi il manuale per un elenco completo delle funzioni.

Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Insiemi