مج

مجموعه در 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): اگر همه‌ی عنصرهای A در B هم باشند، true.
  • issetequal(A, B) (بدون نماد): اگر A و B دقیقاً همان عنصرها را داشته باشند، true.
  • isdisjoint(A, B) (بدون نماد): اگر A و B هیچ عنصر مشترکی نداشته باشند (یعنی اشتراکشان خالی است)، true.
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 این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

مجموعه را یاد بگیرید