علوم وفضاء

لعبة الفوضى: ارسم مثلث سيربنسكي بنقاط المنتصف

اثنا عشر ألف نقطة محسوبة تظهر فجوات مثلثية داخل مثلث رؤوسه أي وبي وسي
الرسم ناتج تشغيلنا: 12,000 موضع بعد تجاوز أول 15 انتقالًا. العلامة لها حجم على الشاشة؛ لا تمثل مساحة هندسية خالية من التقريب.

ثلاث زوايا ثابتة، ونقطة تتحرك في كل مرة إلى منتصف الطريق نحو زاوية مختارة. هل تمتلئ المساحة كلها؟ سنبدأ بست خطوات يمكن حسابها على الورق، ثم نقارنها بتجربة أطول. وستساعدنا مقارنة بدايتين على تفسير سبب تناقص أثر موضع البداية في الرسم.

الخلاصة السريعة

  • اخترنا A=(0,0)، وB=(12,0)، وC=(6,9)، وبداية P0=(6,3).
  • تسلسلنا اليدوي A، C، B، B، A، C يصل إلى (177/32,309/64).
  • مع الاختيارات نفسها، ينخفض فرق إحداثيات بدايتين إلى نصفه في كل انتقال.
  • رسمنا 12,000 نقطة ببذرة ثابتة، ووجدنا مجموعات الاختيارات الثلاثية السبع والعشرين كلها.
  • نفرق بين الصورة العددية المحدودة والمجموعة الهندسية الناتجة عن استمرار البناء بلا نهاية.

قاعدة واحدة لكل انتقال

في لعبة الفوضى نختار أحد رؤوس المثلث باحتمالات متساوية، ثم نحسب منتصف القطعة الواصلة بينه وبين الموضع الحالي. بالإحداثيات: Pnext=(P+V)/2، ونعيد الاختيار والحساب. [1]

مثلث مثالنا متساوي الساقين: قاعدته 12 وارتفاعه 9 وحدات. اكتب A عند اليسار، وB عند اليمين، وC في الأعلى. لا تبدّل أسماء الرؤوس عندما تتحرك النقطة؛ الحرف يحدد الزاوية الثابتة. اجعل البداية على المحور الرأسي عند الارتفاع 3، أي P0=(6,3).

إذا اخترنا A أولًا، يكون المتوسط الأفقي (6+0)/2=3، والرأسي (3+0)/2=1.5. الموضع الجديد هو (3,1.5). عند اختيار C بعده نحسب من هذا الموضع الجديد، فنحصل على ((3+6)/2,(1.5+9)/2)=(4.5,5.25). العودة إلى P0 في كل انتقال ستنشئ تجربة مختلفة.

ست خطوات نستطيع مراجعتها يدويًا

الترتيب التالي اختيار منا لشرح الحساب، وليس عينة خرجت من مولد الأعداد العشوائية. نكتبه قبل البدء: A، C، B، B، A، C. تكرار B في موضعين متتاليين مقصود؛ القاعدة تسمح باختيار الرأس نفسه مرة أخرى.

الخطوةالرأسxy
0—63
1A33/2
2C9/221/4
3B33/421/8
4B81/821/16
5A81/1621/32
6C177/32309/64

راجع الانتقال الرابع مثلًا: x=(33/4+12)/2=81/8، وy=(21/8+0)/2=21/16. ينخفض الارتفاع عند تكرار B، لكنه لا يصبح صفرًا مباشرة. وفي الانتقال السادس نجمع 21/32 مع 9 قبل القسمة على اثنين؛ ناتج الارتفاع 309/64، لا 21/64.

ستة انتقالات مرقمة من نقطة البداية داخل المنطقة الوسطى، وفق ترتيب الرؤوس المكتوب
الأرقام تقابل الجدول. أضفنا خطوطًا متقطعة كي تقرأ ترتيب الانتقالات؛ سحابة الصورة الرئيسية تعرض المواضع دون وصلها.

ابدأ مرة ثانية دون تغيير الاختيارات

لنبدأ تجربة موازية من Q0=(2,1). الفارق الأول P0−Q0=(4,2). إذا اخترنا الرأس V لكليهما، فإن طرح المتوسطين يلغي V: (P+V)/2−(Q+V)/2=(P−Q)/2. لذلك يصبح الفارق بعد n انتقالات (4/2ⁿ,2/2ⁿ) مهما كان ترتيب الاختيارات المشتركة.

بعد الخطوة الأولى يصل Q إلى (1,0.5)، والفارق عن P هو (2,1). وبعد الست نفسها يكون الفارق (1/16,1/32). المسافة المستقيمة بين النقطتين تتناقص بالنسبة نفسها؛ فبعد عشر خطوات تساوي √20/1024، أي نحو 0.00437 وحدة.

هذه المقارنة تشترط اختيار الرأس نفسه للتجربتين في كل خطوة. لو أعطينا كل نقطة سلسلة مختلفة، فلن يختفي V عند الطرح، ولا يصح نقل النتيجة إليها. وكذلك صغر الفارق لا يعني أن الإحداثيين متطابقان في الحساب الكسري الدقيق.

حوّل الحساب إلى سحابة نقاط

شغّلنا Python 3.12.14 بالبذرة 20261013، واخترنا الرأس في كل انتقال باستخدام Random.randrange(3). تجاوزنا أول 15 موضعًا، ثم رسمنا 12,000 موضع. المقتطف التالي يعيد إحداثيات هذه التجربة دون مكتبة رسم خارجية:

from random import Random
rng = Random(20261013)
vertices = [(0, 0), (12, 0), (6, 9)]
x, y = 6.0, 3.0
points = []
for step in range(12015):
    vx, vy = vertices[rng.randrange(3)]
    x, y = (x + vx) / 2, (y + vy) / 2
    if step >= 15:
        points.append((x, y))
print(len(points))  # 12000

لم نختر العدد 15 بوصفه قانونًا عامًا. المسافة بين أي بدايتين داخل مثلثنا لا تتجاوز 12؛ وبالاختيارات المشتركة لا يزيد فرق الموضع بعد 15 خطوة على 12/32768، أي نحو 0.000366 وحدة. عند مقياس 70 بكسلًا للوحدة في ملف الرسم، يعادل ذلك أقل من 0.026 بكسل. هذا يفسر اختيارنا من حيث أثر البداية فقط.

فحصنا آخر ثلاثة رؤوس مختارة عند كل موضع مرسوم. هناك 3×3×3=27 ترتيبًا ممكنًا؛ ظهرت كلها في هذه التجربة، بعدد تراوح من 402 إلى 480 لكل ترتيب. لا تثبت هذه الأعداد تغطية كل التفاصيل الأصغر، ولا تعني أن فرص الاختيار انعدمت أو تضاعفت عندما اختلفت الحصص الفعلية.

لماذا تظهر الفجوات المثلثية؟

يمكن بناء نمط سيربنسكي أيضًا بوصل منتصفات أضلاع المثلث، وإزالة الوسط، ثم تكرار العمل داخل المثلثات الثلاثة الباقية. يربط نشاط كورنيل هذا البناء بلعبة النقاط. [3]

في مثلثنا تقع رؤوس الفجوة الوسطى عند (6,0)، و(9,4.5)، و(3,4.5). البداية (6,3) داخلها. إذا اخترنا A، انتقلت النقطة إلى (3,1.5)، داخل صورة أصغر لهذه الفجوة نحو A. يمكن فحص ذلك بأخذ أنصاف إحداثيات رؤوس الفجوة: (3,0)، و(4.5,2.25)، و(1.5,2.25).

ينبه شرح ديفاني إلى أن البداية داخل فجوة لا تصل، بالحساب المثالي، إلى مجموعة سيربنسكي نفسها بعد عدد منتهٍ من الخطوات؛ تبقى في فجوات أصغر وتقترب من المجموعة. [2]

لهذا لا نقرأ البياض في الصورة على أنه اختبار دقيق لكل موضع. تقريب الأعداد وحجم العلامة وحدود الشاشة كلها تختلف عن المجموعة الهندسية. في نموذج الكسور تحقّقنا من وقوع كل مسار مختبر داخل فجوة أصغر بالعمق المناسب؛ أما الصورة فاستخدمت أعدادًا عشرية للرسم.

فحوص تعيد ربط الرسم بالحساب

قارنّا التحديث المتتابع بصيغة تجمع مساهمة البداية والرؤوس المختارة مباشرة. شملت المقارنة 7,654 مسارًا كسريًا: جميع التسلسلات حتى ست خطوات، وجميع تسلسلات الثماني خطوات. تطابقت الإحداثيات، واجتاز كل موضع فحص الفجوة المتوقع. وفحصنا علاقة البدايتين في 1,093 مسارًا حتى ست خطوات.

وفي تجربة عكسية اخترنا A وحدها خمسين مرة؛ أصبحت الإحداثيات (6/2⁵⁰,3/2⁵⁰)، فتجمعت النقطة قرب زاوية واحدة. إذن تكرار قاعدة المنتصف وحدها لا يضمن صورة ممتلئة بالتفاصيل إذا أهملنا تنوع الاختيارات. أعد الست خطوات يدويًا أولًا، ثم غيّر سجل الرؤوس مع إبقاء القاعدة ثابتة لتفصل أثر الاختيار عن خطأ الحساب.

المصادر

  1. University of Illinois — Chaos Game
  2. Robert Devaney، Boston University — لماذا يظهر المثلث؟
  3. Cornell Math Explorers’ Club — The Chaos Game
أُعدّ النص والرسوم بمساعدة الذكاء الاصطناعي، ونُفّذت الاختبارات الحسابية المذكورة. الأعداد والرسوم تجربة خاصة بهذا المقال؛ لم تُجرَ تجربة صفية مع أشخاص أو مراجعة بشرية مستقلة.