فكر كـمبرمج الحاسوب
الموقع: الغابة 198
الحلقة السادسة بعنوان "الهوة"
وقف كل من إيثيك، وهيدج، وأوكتيفيا على حافةِ وادٍ عميقٍ.
إنه الشيء الوحيد الحائل بينهم وبين البرج
مَخبأُ التحفة الفنية القوية الثانية من أصل ثلاث.
لديهم قصيرة فسحة من الزمن ليعبروا قبل عودة الحراس.
لأن خزان الوقود الخاص بهيدج فارغ لا يمكنه أن يطير بإيثيك للعبور،
إذًا الحل الوحيد هو صنع جسر للعبور.
لحسن الحظ، توجد أكوام من الحجارة العائمة جانبًا كمكونات للجسر...
مُخترعة من قبل أوكتيفيا بحد ذاتها... تدعى الأحجار العائمة.
فَعل كومةً بدفعةٍ من الطاقة،
وسوف يصطفون لوحدهم ليدوروا حول الوادي بينما تعبر إيثيك.
ولكن، طبعًا، هنالك، عائق.
تكون الأحجار العائمة متوازنة عندما تكون متناوبة بشكل مثالي.
مما يعني أنها يجب أن تشكل تسلسلا
متماثلا عندما تعرض نحو الأمام والخلف.
تبدأ الكومات بترتيب عشوائي،
ولكن سوف تضع نفسها دومًا ضمن ترتيب تناوبي
إذا استطاعوا.
إذا وصلوا لكون الترتيب التناوبي غير ممكن،
سوف ينهار الجسر،
والذي عليه سوف يقع لقعر الوادي.
لنلقي نظرةً على المثال.
هذه الكومة ستقوم بالمحافظة على نفسها ثابتة.
مبدئيًا تبقي الأحجار A نفسها في المكان.
ثم تأتي الأحجار B.
وأخيرًا تأتي الأحجار C لتتموضع بين الأحجار B.
لكن، لنفترض أن هنالك أكثر من نمط A.
أولًا إثنتان من A تتشكل صعودًا ثم إثنتان B،
ولكن الآن المتبقي من C وA ليس لديها مكانًا لتذهب إليه،
لذلك الأمر بأكمله سينهار.
مكنت عقدة القوة هيدج بإمداد كومة وحيدة من الأحجار بالطاقة.
أي نمط من التعليمات يمكن لإيثيك أن تزود بها هيدج لتمكنه بشكلٍ فعال من إيجاد
وتحقيق كومة متناوبة ثابتة؟
قم بالإيقاف الآن لتكتشف ذلك بنفسك.
الأمثل للمتناوبات تشمل ANNA ,RACECAR و MADAM IM ADAM.
القيام باحتساب عدد المرات للحرف المعطى بالظهور في المتناوبة
سيبدي نمطا مساعدا.
قم بالإيقاف الآن لتكتشف ذلك بنفسك.
أولًا لنلقي نظرة على حل ساذج لهذه المشكلة.
الحل الساذج البسيط، نهج قوة غاشمة لم تتطور بعد...
ولكن ستفي بالغرض.
تساعد الحلول الساذجة على تحليل المشاكل،
والعمل بخطواتٍ ثابتةٍ باتجاه حلٍ أفضل.
في هذه الحالة، الحل الساذج هو الوصول لكومةٍ من الأحجار،
ومحاولة جميع الترتيبات،
ومعرفة إن كان تناوبي من خلال قرائته نحو الأمام والخلف.
المشلكة بهذا الحل
إنه سيأخذ وقتًا طويلًا جدًا.
إذا حاول هيدج تجربة نمط كل ثانية،
الرزمة المكونة فقط من 10 أحجار مختلفة ستأخذ منه 42 يوم حتى ينهك.
وذلك لأن الوقت الكلي عبارة عن وظيفة عاملية
لعدد الأحجار المتواجدة.
عشرة أحجار لديها أكثر من ثلاثة ملايين نمط.
ما يشير إليه هذا الحل الساذج إننا بحاجة لحلٍ أسرع بكثير
لنعرف إن كانت كومةٌ من الأحجار قادرةً على تشكيل سلسلةٍ متناوبةٍ.
لنبدأ، قد يكون واضح بشكل حدسي بأن الكومةَ من أحجارٍ مختلفةٍ
لن تشكل واحدةً أبدًا.
لماذا؟
لا يمكن للأحجار الأولى والأخيرة أن تكون ذاتها إذا لم يكن هنالك تكرار.
إذًا متى يمكن لتسلسل معطى أن يكون تناوبي؟
أحد الطرق لمعرفة ذلك هو تحليل بعض المتناوبات الموجودة.
في نمط ANNA، هنالك إثنتان من نوع A وإثنتان من نوع N.
RACECAR تمتلك إثنتان من نوع R وإثنتان من نوع A، وإثنتان من نوع C وواحد من نوع E.
ونمط MADMA IM ADAM تمتلك أربعة لكل من نوع M وA، وإثنتان من نوع D وواحد من نوع I.
تظهر معظم الأحرف في هذا النمط
بعددٍ متساوٍ من المرات،
وهنالك واحد فقط يظهر مرة واحدة على الأكثر.
هل هذا هو؟
ماذا إذا امتلكت RACECAR ثلاثة من النوع E بدلًا من واحد؟
سنتمكن من وضع الـ E في النهايات ويستمر النمط بكونه تناوبي،
إذًا ثلاثة جيدة.
ولكن جعلها ثلاثة E وثلاثة C، وليس هنالك مكان للـ C الانتهائية لتذهب إليه .
الرؤية الأكثر العمومية هي الآتي
على الأكثر يمكن لحرف واحد أن يظهر لعدد فردي من المرات،
ولكن البقية عليهم أن يكونوا متساويين.
يمكن لهيدج أن يقوم بعد الأحرف بكل حزمة ويرتبها ضمن معجم،
والتي تعتبر طريقةً مرتبةً لتخزين المعلومات.
يمكن لحلقة أن تمر بها وتقوم بعد عدد مرات ظهور الأعداد الفردية.
إذا تواجد أقل من عنصرين فردين، يمكن للحزمة أن تكون تناوبية.
هذا النمط أسرع بكثير من الحل الساذج.
بدلًا من الزمن العاملي، ستأخذ وقت خطي.
هنا حيث الزمن يتزايد
كميًا إلى عدد الأحجار المتواجدة.
الآن قم بكتابة حلقة لهيدج ليقوم بترتيب الأكوام بشكل منفرد،
وتوقف عندما يقوم بإيجاد واحدةٍ جيدةٍ، وستكون جاهزًا للإنطلاق.
إليك ما حدث:
إن هيدج سريع، ولكن هنالك العديد من الأكوام لذلك استغرق وقتًا طويلًا.
طويلًا جدًا.
كل من إيثيك وهيدج بخير.
ولكن أوكتيفيا ليست بهذا الحظ.