Ha

Halmazok ebben a kurzusban: Julia

1 feladat

A(z) Halmazok fogalomról

A Set olyan gyűjtemény, amely a következő tulajdonságokkal rendelkezik:

  • Rendezetlen.
  • Az elemei egyediek, ezért a duplikátumok hozzáadására tett kísérleteket csendben figyelmen kívül hagyja.
  • A matematikai halmazoknál megszokott műveletek közül sok támogatott.

Létrehozásukhoz a Set() konstruktort használd, paraméterként bármilyen iterátort megadva.

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

Új elemeket a push!() függvénnyel adhatsz hozzá (ugyanúgy, mint a tömböknél), törölni pedig a delete!() függvénnyel tudsz.

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

Halmazműveletek

Ahogy több más gyűjteménytípusnál is, a tagságot az in vagy a ∈ operátorral ellenőrizheted (a szimbólumhoz írd be, hogy \in, majd nyomj tabot).

julia> 3 ∈ s1
true

A következő, halmazpárokon végzett műveletek támogatottak (az operátorszimbólum beírásához tartozó gyorsbillentyűk zárójelben szerepelnek).

  • union(A, B) vagy A ∪ B (\cup): minden elem, amely A-ban vagy B-ben vagy mindkettőben benne van.
  • intersect(A, B) vagy A ∩ B (\cap): minden elem, amely A-ban és B-ben is közös.
  • setdiff(A, B) (nincs szimbólum): azok az elemek, amelyek A-ban benne vannak, de B-ben nem.
  • symdiff(A, B) (nincs szimbólum): azok az elemek, amelyek A-ban vagy B-ben benne vannak, de nem mindkettőben.
  • issubset(A, B) vagy A ⊆ B (\subseteq) vagy B ⊇ A (\supseteq): true, ha A minden eleme B-ben is benne van.
  • issetequal(A, B) (nincs szimbólum): true, ha A és B pontosan ugyanazokat az elemeket tartalmazza.
  • isdisjoint(A, B) (nincs szimbólum): true, ha A-nak és B-nek nincs közös eleme (azaz a metszetük üres).
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

Ezek közül soknak létezik módosító változata is, amelyeknél a függvénynévhez egy ! kerül. A függvények teljes listját a kézikönyvben találod.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Halmazok fogalmat