حفظ مثالنا متوسط نافذة الطرف، لكنه لم يعطِ خطوات متساوية.
انعكاس القيم حول مستوى الطرف
في odd، القيمة المضافة هي ضعف قيمة الطرف ناقص القيمة المنعكسة؛ even يترك الانعكاس دون هذا التغيير. [1]
نحصر السؤال في reflect مع الخيار reflect_type، ونثبت عرض الحشو في المقارنة. لا نغير طريقة اختيار الفهرس المنعكس بين مسارينا؛ الذي يتغير هو العدد الذي نكتبه عند ذلك الفهرس خارج المدخل.
نختار سلسلة صغيرة بأعداد مؤلفة. عندما نضيف قيمة قبل بدايتها، فهي ليست قراءة جهاز تسبق أول عينة، بل عدد صنعناه وفق قاعدة معلنة. لا نحول نجاح الحساب إلى دليل على شكل سجل حقيقي خارج مجال مشاهداته.
سنقارن مثالًا بخطوتين مختلفتين وتحكمًا بخطوة واحدة. وجود اسم odd وحده لا يثبت أن السلسلة الأصلية ذات ميل ثابت، لذلك نحفظ فروق الأعداد ضمن جدول المثال.
احسب القيم والمتوسط عند الطرف
أنشأنا x=np.array([-4,0,7],dtype=np.int64). شغّلنا np.pad(x,(2,2),mode='reflect',reflect_type='odd') في NumPy 2.3.5 على CPython 3.12.14. كانت القيم [-15,-8,-4,0,7,14,18]، والنوع int64، والشكل (7,).
إلى يسار الطرف -4، نعكس موضعي العددين 0 و7. الجار الأقرب صار 2×(-4)-0=-8، والذي يسبقه صار 2×(-4)-7=-15. إلى يمين الطرف 7، الجار الأقرب 2×7-0=14، والذي يليه 2×7-(-4)=18.
مع reflect_type='even' بقيت القيم المنعكسة 0 و7 قبل البداية، و0 و-4 بعد النهاية. أعطى الاستدعاء [7,0,-4,0,7,0,-4] بالنوع والشكل نفسيهما. بقيت أعداد المدخل الأصلية -4 و0 و7 في الوسط في المسارين.
المتوسط مجموع القيم مقسومًا على عددها. [2]
عرفنا نافذة من خمس قيم مركزها الطرف الأول. في odd هي [-15,-8,-4,0,7]، ومجموعها -20، فمتوسطها -4. حول الطرف الأخير، النافذة [-4,0,7,14,18] ومجموعها 35، فمتوسطها 7.
يمكن مراجعة كل زوج حول الطرف الأول: -8+0=-8 و-15+7=-8؛ كل مجموع يساوي ضعفي -4. حول الطرف الأخير: 14+0=14 و18+(-4)=14؛ كل مجموع يساوي ضعفي 7. مع قيمة المركز نفسها، يعيد المتوسط قيمة الطرف في هاتين النافذتين.
هذا متوسط نافذة مركزها عينة طرفية، وليس متوسط السلسلة كلها أو متوسط كل نافذة في الداخل. نفذ مرجعنا الجمع بأعداد Python الصحيحة ثم القسمة بكسور Fraction؛ لم نشغّل np.mean لادعاء نتيجة عائمة.
متوسط الطرف لا يضمن ميلًا ثابتًا
نطرح كل عدد في امتداد odd من العدد التالي له، باستخدام أعداد Python صحيحة. الفروق هي [7,4,4,7,7,4]. لا توجد خطوة واحدة ثابتة تجمع هذه المواضع السبعة في خط واحد ذي ميل ثابت.
المدخل الأصلي نفسه ينتقل من -4 إلى صفر بفرق أربعة، ثم من صفر إلى سبعة بفرق سبعة. حافظ الامتداد في مثالنا على الزوجين المتقابلين حول كل طرف؛ لم يبدل العدد سبعة بأربعة ليجعل الفروق الأصلية متساوية.
لتحكم منفصل، أنشأنا مصفوفة int64 بالأعداد [-4,0,4]، ثم شغّلنا reflect مع odd والعرض (2,2) نفسه. أعاد الاستدعاء [-12,-8,-4,0,4,8,12]، فكانت الفروق الستة كلها أربعة.
إذن التحكمان يميزان خاصيتين: متوسط نافذة الطرف، وتساوي الفروق المتتالية. نجحت الثانية للتحكم ذي الفروق المتساوية، وفشلت للمثال الرئيسي. لا نجعل التحكم وحده برهانًا على أن odd يمد كل سلسلة بخط مستقيم.
الرسم الداخلي يعرض قائمة الفروق في المثال والتحكم. والرسوم تمثل أعداد التشغيل المؤلفة؛ لا تعرض تنبؤًا فيزيائيًا أو قياسات إضافية أو وعدًا بأن هذا الاختيار مناسب لكل سجل.

مرجع مستقل وعروض حشو محدودة
استعمل المرجع قوائم Python فقط لاختيار الفهارس الداخلية المنعكسة. قبل البداية، أخذ الفهارس من عرض الحشو نزولًا إلى واحد؛ وبعد النهاية، أخذ الفهارس n-2 ثم n-3 وما يليها حتى يكتمل العرض.
لـeven كتب المرجع الأعداد المختارة كما هي. ولـodd حسب ضعف الطرف ناقص كل عدد مختار، ثم ألحق القيم الأصلية بين الجزأين. لم يستدعِ مرجع القيم pad أو دالة انعكاس من NumPy.
اخترنا أطوالًا n تساوي 2 أو 3 أو 4، وكل قائمة ممكنة من الأعداد -3 و0 و4. لكل قائمة اخترنا عرضًا قبلها وعرضًا بعدها من صفر إلى n-1. عدد الحالات 3²×2²+3³×3²+3⁴×4²=36+243+1296=1575.
في كل حالة راجعنا سبعة أشياء: قيم odd؛ ونوعها وشكلها؛ وقيم even ونوعها وشكلها؛ وبقاء القيم الأصلية في الوسط؛ ومتوسط نافذة الطرف الأول؛ ومتوسط نافذة الطرف الأخير؛ وثبات بايتات المدخل ونوعه وشكله.
نصف قطر كل نافذة هو عرض الحشو المتاح في جهتها. لذلك لا نطلب نافذة خارج الحشو الذي نفذناه، وعند عرض صفر تكون النافذة عنصر المركز وحده. اخترنا عرضًا لا يتجاوز n-1 في كل جهة، فتأتي القيم المنعكسة من الداخل الأصلي مباشرة.
أضفنا سبعة فحوص للمثال الرئيسي وسبعة للتحكم، وأربعة خاصة بالقيم المعلنة والفروق. صار الحساب 1575×7+14+4=11043، ومرت جميعها.
لا يشمل النطاق symmetric أو عرضًا أكبر من n-1 أو مدخلًا من عنصر واحد أو أنواعًا أخرى أو محاور متعددة أو قيمًا غير منتهية أو الأداء أو ملكية الذاكرة. عند تفسير نتيجة الحشو، احتفظ بالمدخل والخيار والعرض، ثم راجع الخاصية المطلوبة من الأعداد نفسها.
| المدخل | odd | الفروق |
|---|---|---|
| [-4,0,7] | [-15,-8,-4,0,7,14,18] | [7,4,4,7,7,4] |
| [-4,0,4] | [-12,-8,-4,0,4,8,12] | [4,4,4,4,4,4] |
للتوسع: خصائص الموجات.
المراجع
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
