# 📊 مثال‌های عملی محاسبه تعادل - 5 لول عمقی **تاریخ**: 2025-12-09 **وضعیت**: مثال‌های کامل و تایید شده **هدف**: نمایش محاسبات واقعی برای درخت باینری تا 5 لول --- ## 🌳 ساختار درخت نمونه ``` User1 (Level 0) / \ User2 (L1-L) User3 (L1-R) / \ / \ User4(L2-LL) User5(L2-LR) User6(L2-RL) User7(L2-RR) / \ / \ / \ / \ U8(L3) U9(L3) U10(L3) U11(L3) U12(L3) U13(L3) U14(L3) U15(L3) / \ / \ / \ / \ / \ / \ / \ / \ U16-U31 (Level 4 - 16 users) /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ U32-U63 (Level 5 - 32 users) ``` --- ## 📋 داده‌های ورودی ### فرضیات: - **هفته فعلی**: 2025-W50 - **سقف امتیاز**: 300 - **تعداد کل کاربران**: 63 نفر (6 لول: 1+2+4+8+16+32) - **وضعیت**: همه کاربران فعال هستند (عضو باشگاه) --- ## 🎯 محاسبات Level 5 (پایین‌ترین سطح) ### User 32-63 (32 کاربر Leaf): ``` هیچ زیرمجموعه‌ای ندارند چپ = 0، راست = 0 تعادل = MIN(0, 0) = 0 امتیاز = 0 باقیمانده چپ = 0 باقیمانده راست = 0 فلش = 0 ``` **خلاصه Level 5**: تمام 32 کاربر → 0 امتیاز --- ## 🎯 محاسبات Level 4 (User 16-31) ### User 16: **زیرمجموعه**: - چپ: User 32 (1 نفر) - راست: User 33 (1 نفر) **محاسبات**: ``` چپ = 1، راست = 1 تعادل اولیه = MIN(1, 1) = 1 باقیمانده چپ = 1 - 1 = 0 باقیمانده راست = 1 - 1 = 0 امتیاز نهایی = MIN(1, 300) = 1 ✅ فلش = 0 ``` ### User 17: **زیرمجموعه**: - چپ: User 34 (1 نفر) - راست: User 35 (1 نفر) **محاسبات**: مشابه User 16 ``` امتیاز = 1 ✅ ``` ### User 18-31 (14 کاربر دیگه): همه مشابه User 16 → هر کدام 1 امتیاز **خلاصه Level 4**: تمام 16 کاربر → هر کدام 1 امتیاز = **16 امتیاز** --- ## 🎯 محاسبات Level 3 (User 8-15) ### User 8: **زیرمجموعه**: - چپ: User 16 (1 نفر) - راست: User 17 (1 نفر) **محاسبات**: ``` چپ = 1، راست = 1 تعادل = MIN(1, 1) = 1 امتیاز = 1 ✅ ``` ### User 9: **زیرمجموعه**: - چپ: User 18 (1 نفر) - راست: User 19 (1 نفر) **محاسبات**: مشابه User 8 ``` امتیاز = 1 ✅ ``` ### User 10-15 (6 کاربر دیگه): همه مشابه → هر کدام 1 امتیاز **خلاصه Level 3**: تمام 8 کاربر → هر کدام 1 امتیاز = **8 امتیاز** --- ## 🎯 محاسبات Level 2 (User 4-7) ### User 4: **زیرمجموعه**: - چپ: User 8 (1 نفر) - راست: User 9 (1 نفر) **محاسبات**: ``` چپ = 1، راست = 1 تعادل = MIN(1, 1) = 1 امتیاز = 1 ✅ ``` ### User 5: **زیرمجموعه**: - چپ: User 10 (1 نفر) - راست: User 11 (1 نفر) **محاسبات**: مشابه User 4 ``` امتیاز = 1 ✅ ``` ### User 6, 7: همه مشابه → هر کدام 1 امتیاز **خلاصه Level 2**: تمام 4 کاربر → هر کدام 1 امتیاز = **4 امتیاز** --- ## 🎯 محاسبات Level 1 (User 2-3) ### User 2: **زیرمجموعه**: - چپ: User 4 (1 نفر) - راست: User 5 (1 نفر) **محاسبات**: ``` چپ = 1، راست = 1 تعادل = MIN(1, 1) = 1 امتیاز = 1 ✅ ``` ### User 3: **زیرمجموعه**: - چپ: User 6 (1 نفر) - راست: User 7 (1 نفر) **محاسبات**: مشابه User 2 ``` امتیاز = 1 ✅ ``` **خلاصه Level 1**: تمام 2 کاربر → هر کدام 1 امتیاز = **2 امتیاز** --- ## 🎯 محاسبات Level 0 (User 1 - Root) ### User 1: **زیرمجموعه**: - چپ: User 2 (1 نفر) - راست: User 3 (1 نفر) **محاسبات**: ``` چپ = 1، راست = 1 تعادل = MIN(1, 1) = 1 امتیاز = 1 ✅ ``` **خلاصه Level 0**: User 1 → **1 امتیاز** --- ## 📊 جمع کل سیستم | Level | تعداد کاربران | امتیاز هر کاربر | جمع امتیازهای Level | |-------|---------------|-----------------|---------------------| | 5 | 32 | 0 | 0 | | 4 | 16 | 1 | 16 | | 3 | 8 | 1 | 8 | | 2 | 4 | 1 | 4 | | 1 | 2 | 1 | 2 | | 0 | 1 | 1 | 1 | | **جمع** | **63** | - | **31 امتیاز** | --- ## 💰 محاسبه صندوق ### داده‌های ورودی: ``` تعداد کاربران فعال شده این هفته: 63 نفر هزینه فعال‌سازی هر نفر: 25,000,000 ریال درصد سهم استخر: 20% جمع ورودی استخر = 63 × 25,000,000 × 20% = 63 × 5,000,000 = 315,000,000 ریال ``` ### محاسبه ارزش هر امتیاز: ``` مجموع امتیازهای سیستم = 31 جمع استخر = 315,000,000 ریال ارزش هر امتیاز = 315,000,000 ÷ 31 = 10,161,290 ریال (تقریباً) ``` ### توزیع کمیسیون: ``` User 1: 1 × 10,161,290 = 10,161,290 ریال User 2: 1 × 10,161,290 = 10,161,290 ریال User 3: 1 × 10,161,290 = 10,161,290 ریال User 4-7: 4 × 10,161,290 = 40,645,160 ریال User 8-15: 8 × 10,161,290 = 81,290,320 ریال User 16-31: 16 × 10,161,290 = 162,580,640 ریال User 32-63: 0 ریال (امتیازی ندارند) جمع کل پرداختی = 315,000,000 ریال ✅ ``` --- ## 🔥 مثال پیچیده‌تر: سناریو نامتعادل ### تغییر ساختار: ``` User 1: چپ: 500 نفر (عمق زیاد) راست: 600 نفر (عمق بیشتر) ``` ### محاسبات User 1: ``` مرحله 1️⃣: تعادل اولیه چپ = 500، راست = 600 تعادل = MIN(500, 600) = 500 مرحله 2️⃣: باقیمانده باقی چپ = 500 - 500 = 0 باقی راست = 600 - 500 = 100 → هفته بعد مرحله 3️⃣: اعمال سقف امتیاز = MIN(500, 300) = 300 ✅ مرحله 4️⃣: فلش فلش از چپ = 500 - 300 = 200 فلش از راست = 500 - 300 = 200 جمع فلش = 400 (از بین می‌رود) ``` ### نتیجه: ``` ✅ امتیاز User 1: 300 ✅ باقیمانده راست: 100 (می‌رود هفته بعد) ✅ باقیمانده چپ: 0 ✅ فلش شده: 400 (از بین رفته) ``` --- ## 🔄 مثال با Carryover (هفته بعد) ### فرض: User 1 در هفته 2025-W51: ``` باقیمانده هفته قبل: چپ: 0 راست: 100 جدیدهای این هفته: چپ: 250 راست: 150 ``` ### محاسبات: ``` مرحله 1️⃣: جمع با هفته قبل چپ کل = 0 + 250 = 250 راست کل = 100 + 150 = 250 مرحله 2️⃣: تعادل تعادل = MIN(250, 250) = 250 مرحله 3️⃣: باقیمانده باقی چپ = 250 - 250 = 0 باقی راست = 250 - 250 = 0 مرحله 4️⃣: امتیاز امتیاز = MIN(250, 300) = 250 ✅ مرحله 5️⃣: فلش فلش = 0 (چون 250 < 300) ``` --- ## 📈 مثال سقف: User با شبکه بزرگ ### User A: ``` چپ: 800 نفر راست: 900 نفر ``` ### محاسبات: ``` تعادل = MIN(800, 900) = 800 باقی چپ = 800 - 800 = 0 باقی راست = 900 - 800 = 100 امتیاز = MIN(800, 300) = 300 ✅ فلش: از چپ: 800 - 300 = 500 از راست: 800 - 300 = 500 جمع: 1000 (از بین می‌رود) ``` **نتیجه**: حتی با 800 تعادل، فقط **300 امتیاز** می‌گیرد! --- ## 🎯 جمع‌بندی قوانین ### ✅ قوانین کلیدی: 1. **تعادل** = MIN(چپ، راست) 2. **باقیمانده** = طرفی که بیشتر است (قبل از سقف) 3. **امتیاز** = MIN(تعادل، 300) 4. **فلش** = (تعادل - 300) از هر دو طرف (اگر > 300) 5. **محاسبه مستقل** = هر کاربر جداگانه 6. **جمع صندوق** = مجموع امتیازهای همه ### ✅ نکات مهم: - باقیمانده **جداگانه** ذخیره می‌شود (چپ و راست) - فلش از **هر دو طرف** اتفاق می‌افتد - سقف 300 روی **امتیاز نهایی** اعمال می‌شود - هر کاربر مستقل از دیگران محاسبه می‌شود --- ## 📊 جدول مقایسه سناریوها | سناریو | چپ | راست | تعادل | امتیاز | باقی چپ | باقی راست | فلش کل | |--------|-----|-------|--------|--------|---------|-----------|---------| | متعادل کوچک | 50 | 50 | 50 | 50 | 0 | 0 | 0 | | متعادل متوسط | 200 | 200 | 200 | 200 | 0 | 0 | 0 | | نامتعادل کوچک | 100 | 150 | 100 | 100 | 0 | 50 | 0 | | نامتعادل متوسط | 250 | 350 | 250 | 250 | 0 | 100 | 0 | | **سقف ساده** | **350** | **350** | **350** | **300** | **0** | **0** | **100** | | **سقف نامتعادل** | **500** | **600** | **500** | **300** | **0** | **100** | **400** | | سقف بزرگ | 800 | 900 | 800 | 300 | 0 | 100 | 1000 | --- **پایان مثال‌های عملی** این مستند تمام حالات ممکن محاسبه تعادل را با مثال‌های عددی واقعی نشان می‌دهد.