لقد تم تعيينك مؤخرًا كمهندس برمجيات في شركة متخصصة في تحليل البيانات. مهمتك الأولى هي تنفيذ خوارزمية تحسب المتوسط ​​والوسيط والوضع لقائمة معينة من الأعداد الصحيحة. المتوسط ​​هو متوسط ​​جميع الأرقام الموجودة في القائمة، والوسيط هو الرقم الأوسط عند فرز القائمة بترتيب تصاعدي، والوضع هو الرقم الذي يظهر بشكل متكرر في القائمة. ومع ذلك، هناك مشكلة - لا يُسمح لك باستخدام أي وظائف أو مكتبات مضمنة لحساب هذه الإحصائيات.

اكتب دالة `calculate_stats(numbers)` تأخذ قائمة من الأعداد الصحيحة كمعلمة وترجع قاموسًا يحتوي على المتوسط ​​والوسيط والوضع للأرقام المحددة.

** التوقيع الوظيفي **
`def account_stats(numbers: List[int]) -> Dict[str, Union[float, int]]:`

**مدخل**
المعلمة `numbers` هي قائمة مكونة من عدد صحيح واحد على الأقل و1000 عدد صحيح على الأكثر (-10^9 ≥ أرقام[i] ≥ 10^9).

**انتاج**
يجب أن تقوم الدالة بإرجاع قاموس بثلاثة مفاتيح: "المتوسط" و"الوسيط" و"الوضع". يجب أن تكون القيم المقابلة لكل مفتاح هي المتوسط ​​المحسوب (العائم)، والوسيط (int)، والوضع (int) على التوالي.

**أمثلة**
لنفترض أن المدخلات التالية معطاة:
```بيثون
الأرقام = [1، 2، 3، 4، 5، 5، 6]
```
يجب أن ترجع الدالة:
```بيثون
{
  "يعني": 4.0،
  "الوسيط": 4،
  "الوضع": 5
}
```

لنفترض أن المدخلات التالية معطاة:
```بيثون
الأرقام = [3، 1، 2، 2، 4، 3]
```
يجب أن ترجع الدالة:
```بيثون
{
  "يعني": 2.5،
  "الوسيط": 2،
  "الوضع": 2
}
```

**ملحوظة**
في المثال الأول، يتم حساب المتوسط ​​على النحو التالي (1+2+3+4+5+5+6)/7 = 26/7 ≈ 4.0، والوسيط هو الرقم الأوسط عند فرز القائمة بترتيب تصاعدي، والذي هو 4، والوضع هو 5 لأنه يظهر مرتين وهو أكثر من أي رقم آخر.

في المثال الثاني، يتم حساب المتوسط ​​على النحو التالي (3+1+2+2+4+3)/6 = 15/6 = 2.5، والوسيط هو 2 لأنه الرقم الأوسط، والمنوال هو 2 لأنه يظهر مرتين، وهو أكثر من أي رقم آخر.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}