Set
সেট
স্বতন্ত্র বস্তুর একটা অসজ্জিত সংগ্রহ। ক্রমের অর্থ নেই, পুনরাবৃত্তি নেই — আর সেই স্বাধীনতাই hash-ভিত্তিক O(1) lookup সম্ভব করে।
{1, 2, 3} = {3, 1, 2} = {1, 1, 2, 3, 3}
তিনটাই একই set।
Set operation আর logical connective একই জিনিস:
| Set | Logic | কোডে |
|---|---|---|
A ∪ B | ∨ | a | b, UNION |
A ∩ B | ∧ | a & b, INTERSECT |
A \ B | ∧ ¬ | a - b, EXCEPT |
A △ B | ⊕ | a ^ b |
তাই [[de-morgans-law]], distribution, absorption — সব নিয়ম হুবহু খাটে, শুধু চিহ্ন বদলে।
⊆ আর ∈ এক নয়: {1,2} ⊆ {1,2,3} সত্য কিন্তু
{1,2} ∈ {1,2,3} মিথ্যা।
কেন set-এর সদস্য hashable হতে হয়: O(1) membership-এর জন্য
hash table লাগে, আর hash অপরিবর্তনীয় হতে হবে — নাহলে object
ভুল bucket-এ পড়ে থাকবে আর কখনো খুঁজে পাওয়া যাবে না।
Database-এর “relational” শব্দটা এখান থেকেই — একটা table হলো tuple-এর একটা set, আর query হলো set operation।