সে

সেট মধ্যে Julia

১টি অনুশীলনী

সেট সম্পর্কে

একটি 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 লিখে ট্যাব চাপুন)।

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-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

সেট শিখুন