Σύ

Σύνολα σε Julia

1 άσκηση

Σχετικά με την έννοια Σύνολα

Ένα Set είναι μια συλλογή στοιχείων με τις εξής ιδιότητες:

  • Δεν έχει σειρά.
  • Οι καταχωρήσεις είναι μοναδικές, οπότε οι προσπάθειες να προσθέσεις διπλότυπα αγνοούνται σιωπηλά.
  • Υποστηρίζει πολλές από τις πράξεις που συνηθίζονται στα μαθηματικά σύνολα.

Δημιούργησέ τα με τον κατασκευαστή Set(), χρησιμοποιώντας οποιονδήποτε επαναλήπτη ως παράμετρο.

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

Πρόσθεσε νέα στοιχεία με το push!() (όπως ακριβώς και με τους πίνακες), και αφαίρεσέ τα με το 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

Πράξεις συνόλων

Όπως και με αρκετούς άλλους τύπους συλλογών, έλεγξε αν ένα στοιχείο ανήκει στο σύνολο με τον τελεστή in ή ∈ (πληκτρολόγησε \in και μετά tab για το σύμβολο).

julia> 3 ∈ s1
true

Υποστηρίζονται οι παρακάτω πράξεις σε ζεύγη συνόλων (οι συντομεύσεις για το σύμβολο του τελεστή δίνονται σε παρενθέσεις).

  • union(A, B) ή A ∪ B (\cup): όλες οι καταχωρήσεις που ανήκουν στο A ή στο B ή και στα δύο.
  • intersect(A, B) ή A ∩ B (\cap): όλες οι καταχωρήσεις που είναι κοινές και στα δύο σύνολα A και B.
  • setdiff(A, B) (χωρίς σύμβολο): οι καταχωρήσεις που ανήκουν στο A αλλά όχι στο B.
  • symdiff(A, B) (χωρίς σύμβολο): οι καταχωρήσεις που ανήκουν είτε στο A είτε στο B αλλά όχι και στα δύο.
  • issubset(A, B) ή A ⊆ B (\subseteq) ή B ⊇ A (\supseteq): true αν όλες οι καταχωρήσεις του A ανήκουν και στο B.
  • issetequal(A, B) (χωρίς σύμβολο): true αν τα A και B περιέχουν ακριβώς τις ίδιες καταχωρήσεις.
  • isdisjoint(A, B) (χωρίς σύμβολο): true αν τα A και B δεν έχουν καμία κοινή καταχώριση (δηλαδή η τομή τους είναι κενή).
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

Πολλές από αυτές τις πράξεις έχουν και παραλλαγές που τροποποιούν το σύνολο, με ! στο τέλος του ονόματος της συνάρτησης. Δες το εγχειρίδιο για την πλήρη λίστα των συναρτήσεων.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Σύνολα