إذا كان السؤال عن انتظار يبدأ من مخرج سابق، فقراءة موعد واحد في رأس المعاملة لا تكفي. نقرأ BIP68 وفق الخلاصة. [1] نعزل هذا الفحص في أمثلة أصلية؛ لا نجهز دفعًا ولا نقرر قبول معاملة كاملة. الأعداد التالية اخترناها، وليست ارتفاعات أو أوقاتًا مأخوذة من الشبكة. نريد معرفة سبب اختلاف نتيجتين ظاهرهما «انتظار ست وحدات»، وكيف نجمع شرطين دون تحويلهما إلى متوسط لا يخص أيًا منهما.
الخلاصة السريعة
في معاملة عادية بإصدار 2 فأعلى وتفعيل الفحص، البت 31 المضبوط يعطل القيد النسبي؛ و 22 المضبوط يختار وحدات 512 ثانية، وغير المضبوط كتلًا؛ والمقدار في البتات الستة عشر الدنيا. [1] في فرع بداية 400 وانتظار ست، أول موضع 406. يحتفظ Core ب 405 كآخر غير موافق ويطلب تجاوزه. [2]
- في فرع 400 مع ست وحدات، 405 لا يفي بالشرط و 406 يفي بهذا الفحص فقط؛ الناتج ليس موعد إرسال فعليًا.
- الفرع الآخر، 403 مع أربع، يعطي 407 ؛ اجتماع الفرعين يحتاج 407 ، لا مجموع 813 أو متوسط 406.5.
- ست وحدات تعني 3072 ثانية. س هو الزمن الوسيط الماضي للكتلة السابقة لكتلة المخرج؛ وص نظيره للكتلة السابقة للمقترحة. [1][2] نعطي س 1000000 وص 1003072 فيوافق الحد؛ ليست الساعة الشخصية.
- نوعان مختلفان لا يتحولان إلى عدد واحد: يجب أن تتحقق المقارنتان، فلا تعوض زيادة أحد الرقمين نقص الآخر.
- المقدار صفر أو استبعاد التفسير النسبي لا يلغي بقية الفحوص، ولا يجعل المخرج متاحًا لشخص لم نقدم بياناته.
- في عكس الحساب، بداية 400 ونهاية مفروضة لا تتجاوز 407 تسمح بثمانية مقادير صحيحة من صفر إلى سبعة؛ الوصول إلى نهاية 406 بالضبط يحصر الاختيار في ست.
- وفي مقارنة أصلية إضافية، الأرخص بين بدائل مسموحة لا يثبت أنه يوافق طلبًا أضيق؛ ابدأ بمجموعة المرشحين ثم رتب أثمانها.
ما الرقم الذي يبدأ منه المثال؟
نختار مخرجًا أُدرج عند الارتفاع 400 ، ومدخلًا تشير قيمة انتظاره إلى ست كتل، مع تحقق شروط النطاق المذكور. يقول المرجع إن نقطة البداية تتبع المخرج الذي ينفقه المدخل، لا تاريخ فتح برنامج القارئ. [1] يعطي تنفيذ الفحص أول حد موافق بجمع البداية والمقدار، ويحتفظ داخليًا بالجمع ناقص واحد للمقارنة. [2] لذلك نجمع 400 وستًا فنحصل على 406 ؛ وآخر حد غير موافق هنا 405. كتابة الرقمين معًا توضح لماذا تختلف عبارة «من 406» عن «بعد 406».
لنطبق ذلك على ثلاث حالات مفروضة: عند 405 نقصت وحدة عن أول نتيجة سمح بها فرعنا، وعند 406 تحقق الحد نفسه، وعند 409 زاد الرقم ثلاثًا عليه. لا تحتاج الحالة الثالثة إلى تغيير الست إلى تسع؛ الست مطلب وضعناه، أما الفرق تسع فهو ما بلغه فرع لاحق بين 400 و 409. الخلط بين المطلب وما توفر بالفعل يجعل القارئ يعيد كتابة المدخل القديم بدل تقييم الحالة الجديدة.
إذا بدأ مثال مستقل عند 402 وبقي المقدار ستًا، تصبح النتيجة 408. تغير الناتج وحدتين لأننا نقلنا البداية وحدتين. لا نستنتج أن الست استغرقت زمنًا مختلفًا بالدقائق، ولم نمنح جدولًا يربط كل انتقال بمدة معلومة. يمكن مقارنة الأعداد الصحيحة كما أعطيناها، لكن تحويل الفرق إلى ساعة يحتاج معطى آخر غير موجود في هذه المسألة.
والعبارة «ست وحدات منذ أمس» لا تسمح باستبدال 400 بتاريخ تقويمي؛ لم نعط فيها البداية التي يحتاجها الفرع. هذه ليست مشكلة في الجمع، بل نقص في الشيء الذي سيجمع مع الست. إذا أعطينا البداية لاحقًا أصبح الحساب محددًا، أما قبلها فهناك نتائج كثيرة توافق المقدار نفسه. يكشف المثال أن معرفة المدة وحدها لا تستعيد الأصل الذي بدأت منه.
مدخل ثان لا يشارك الأول نقطة بدايته
نضيف مدخلًا آخر يبدأ من 403 ونمنحه أربعًا. نحصل له على 407 ، بينما بقي الأول عند 406. حين يجمع التنفيذ قيود النوع الواحد يحتفظ بالأشد، ثم يختبر المعاملة مقابل النتيجة المشتركة. [2] في قصتنا لا يفي 406 بالفرعين؛ تجاوز الشرط الأول وحده وترك الثاني ناقصًا وحدة. عند 407 يفي الاثنان بهذا الجزء من الفحص، وعند 410 لا يتغير أي مطلب قديم لمجرد أن الحالة الجديدة أبعد.
لماذا لا نجمع 406 و 407 ؟ المجموع 813 لا يمثل بداية أي مدخل أو نهاية انتظاره في البيانات. ولماذا لا نأخذ متوسطهما؟ 406.5 يقع بينهما، لكنه أقل من مطلب الثاني، فضلًا عن أننا اخترنا حالات صحيحة الارتفاع. يستعمل المتوسط حين يكون السؤال فعلًا عن متوسط رقمين، وليس حين يطلب تحقق شرطين على حالة واحدة. المعطيات نفسها تسمح بحساب المتوسط، لكنها لا تمنحه وظيفة لم تذكرها المسألة.
نعطي فرعًا جديدًا مستقلًا: الأول ما زال 400 وستًا، لكن الثاني صار 399 وأربعًا. ينتج 403 للثاني، فيصبح 406 كافيًا لهما. لم تتغير قاعدة التجميع؛ تبدل المدخل الذي كان يفرض الرقم الأعلى. وهذا مثال على أهمية حساب كل صف قبل اختيار الأكبر، بدل تقرير أن المدخل الثاني دائمًا هو المتحكم لأنه كان كذلك في الورقة الأولى.
ولو حذفنا بداية الثاني مع إبقاء الأربع، لم يعد بالإمكان الجزم بالنتيجة المشتركة 407. ربما تعود تلك النتيجة بعد استكمال المعطى، وربما يظهر رقم أعلى أو أدنى. لا يعالج أخذ الأكبر من الصف المعلوم وحده شرطًا مجهولًا. نملك نتيجة تخص المدخل الأول، ونحتاج معلومة الثاني قبل وصف حالة تجمعهما؛ تسمية النقص بوضوح أدق من تعويضه بصفر لم تمنحه القصة.
وحدات الزمن تحتاج مرجعيها المحددين
مرجعا الزمن محددان في الخلاصة. [1] سنسمي المعطيين في حسابنا «س» و«ص»، وهما عددان ممنوحان لهذه الوظيفة تحديدًا. نعطي س قيمة 1000000 وست وحدات. الضرب يعطي 3072 ، ثم الجمع يعطي 1003072. احتفاظ التنفيذ بآخر حالة غير موافقة أقل بواحد يترك المساواة بهذا الحد الأول موافقة للفحص النسبي. [2]
عند ص بقيمة 1003071 يبقى فرق واحد، وعند 1003072 تتحقق المساواة المطلوبة، وعند 1004000 تتوفر زيادة 928 على الحد. لا نحول هذه الزيادة إلى قيمة مالية أو عدد تأكيدات. هي فرق ثوانٍ بين عددين في التمرين، ولا تحمل معلومات عن مال أو ترتيب أحداث خارج ما وضعناه. كذلك لا نستبدل س بوقت وصول رسالة هاتف لمجرد أن الرقمين مكتوبان بالثواني؛ اتحاد الوحدة لا يثبت اتحاد الوظيفة. نراجع الزيادة بالطرح المباشر أيضًا: 1004000−1003072=928، لا بجمع العددين.
في فرع مستقل نستعمل سبع وحدات بدل الست مع إبقاء س. يصبح الفاصل 3584 ، والنهاية 1003584. إذا بقي ص القديم 1003072 ، فهو أقل من المطلوب الجديد بمقدار 512. لم يكن ص غلطًا في الفرع الأول؛ أصبح غير كاف في الثاني لأننا غيرنا المدخل عمدًا. وكتابة الفرق توضح أي تغيير صنع النتيجة، بدل وصفها على نحو مبهم بأنها تأخير إضافي حدث على شبكة حقيقية.
نعطي زميلًا المقدار 3072 ثانية وحده. لا يعرف منه س ولا نهاية هذا الفرع. قد يتوافق مع ست وحدات من تعريفنا، لكنه لا يستعيد عدد 1003072 إلا إذا عرف البداية. وبالعكس، إعطاء س والنهاية يعيد الفرق ثم عدد الوحدات حين تكون القسمة تامة. الفصل بين هذه الاتجاهات يحمي السؤال من مطالبة معلومة واحدة بالإجابة عن جميع مجهولاته.
فرعان بوحدتين مختلفتين لا يتعوضان
تحتفظ المقارنة التنفيذية بحدين مختلفين للارتفاع والزمن، ويحتاج الفحص إلى اجتيازهما معًا. [2] نكوّن حالة أصلية فيها الفرع الأول الذي يحتاج 406 ، والفرع الزمني الذي يحتاج 1003072. نعطي الحالة المقترحة ارتفاعًا 408 وص بقيمة 1003071. تتوفر زيادة اثنتين في الأول ونقص واحد في الثاني. لا نجمعهما إلى زيادة واحدة ونسمي الحالة موافقة؛ جمع عدد كتل إلى عدد ثوانٍ لا يجيب عن الشرطين اللذين وضعناهما.
في حالة أخرى نعطي ارتفاعًا 405 وص بقيمة 1004000. هذه المرة تحققت المقارنة الثانية وبقيت الأولى ناقصة. كبر الزيادة 928 لا يسد ذلك النقص، لأننا لم نعلن معاملًا يحول واحدة إلى الأخرى أو قاعدة تسمح بالمبادلة. حتى لو اخترعنا نسبة تحويل حسابية، ستكون مسألة جديدة، ولن تغير شرط المثال الحالي. لذلك يبقى وصف النتيجة مرتبطًا بكل خانة بدل ترتيب الحالات حسب مجموع أرقامها.
أما الحالة 406 مع 1003072 فتوافق الحدين في الفرض. يكفي تغير أحد المدخلين إلى الرقم السابق بوحدة واحدة لتحويل الإجابة الخاصة بهذا الفحص. لا نقرب 405 إلى 406 أو 1003071 إلى 1003072 كي نتخلص من الفارق الصغير؛ اخترنا أعدادًا صحيحة دقيقة ولم نعط تسامحًا. حجم الفرق لا يلغي وجوده عند مقارنة شرط حدي معلن.
يمكن للقارئ وصف «الهامش» في المثال بزوج من الأعداد، مثل اثنتين و 928 لحالة 408 مع 1004000. هذه طريقة أصلية لعرض بياناتنا، وليست وحدة جديدة للبروتوكول. فائدتها إبقاء الزيادتين منفصلتين. وإذا لم يعط أحد طرفي الحالة، يصبح هامشه مجهولًا، ولا نعوضه بما توفر في الطرف الآخر أو نستنتج موافقة لم نفحص مدخلها.
قراءة الحقل لا تعني أن كل قيوده فُحصت
يحدد المرجع معنى الحقل بشرط الإصدار المناسب وحالتي البتين المذكورين؛ ويقتصر المقدار على البتات الدنيا المحددة، فلا تؤخذ قيمة الحقل الخام كاملة بوصفها عدد انتظار. [1] في مثالنا نمنح القارئ تفسيرًا جاهزًا صحيحًا للمقدار والنوع، كي يبقى الحساب واضحًا. لا نقدم أرقام ترميز خامًا ونطلب صنع معاملة منها، ولا نمد النتائج إلى برامج القفل أو الفحوص الأخرى التي لم نراجعها.
خذ مقدارًا صفرًا في الفرع ذي البداية 400. الجمع يعطي 400 ، وليس 401 ، تحت قاعدة هذا التمرين. يتغير الجواب لأن المطلوب صفر، لا لأننا أثبتنا ملكية أو وفاء شروط أخرى. وإذا منحنا فرعًا تستبعد فيه قيمة الحقل من التفسير النسبي، فلا نستعمل الست القديمة لتقييده. لكن استبعاد هذا السؤال وحده لا يزودنا بإجابات بقية الأسئلة؛ النتيجة محدودة بما فحصناه فعلًا.
للمقارنة نعطي وصفين: الأول يحتوي المقدار والنوع والبداية ومرجع الحالة، والثاني لا يحمل سوى كلمة «جاهزة». يمكن إعادة فحص الأول في نطاقنا، أما الثاني فيحتاج بيانًا عن المقصود بالجاهزية. ربما قصد صاحبه مرور هذا الجزء فقط، وربما قصد مرحلة أخرى. لا نحول كلمة مختصرة إلى رقم ولا نجعل صحة الجمع دليلًا على أن فعلًا حدث أو أن موعدًا صار مضمونًا.
ومن الخطأ حمل طريقة مقارنة قفل مطلق إلى فرعنا دون تعيين ما يمثله الرقم. هنا ميزنا أول حالة موافقة من آخر حالة غير موافقة. إذا تبدلت التسمية وبقي الرقم، يمكن أن تنقلب إجابة المساواة رغم أن عملية الجمع نفسها لم تتغير. السؤال الصحيح هو ما الذي يعرضه الناتج، لا هل يتشابه شكله مع عدد سبق أن رأيناه في مقال آخر.
ماذا نستعيد من نتيجة واحدة؟
نختار مسألة عكسية أصلية ببداية 400 ونطلب أن تكون النهاية 406 بالضبط، ونقصر الاختيار على مقدار صحيح غير سالب في الفرع نفسه. يحدد الطرح ستًا. أما إذا طلبنا فقط نهاية لا تتجاوز 407 ، فتوافق ثمانية اختيارات: صفر وواحد واثنان وثلاثة وأربعة وخمسة وستة وسبعة. لا تجعل رؤية الحالة 407 اختيار الست وحيدًا؛ الست وافقت أحد الشروط، لكنها ليست كل ما يسمح به الطلب الأوسع.
وفي مسألة مستقلة نعرف النهاية 407 دون البداية. الزوج 400 مع سبع، و 401 مع ست، و 403 مع أربع، كلها تعيد الرقم نفسه. لا تستعيد النتيجة زوجًا معينًا وحدها. يختلف ذلك عن المسألة التي أعطت 400 مقدمًا؛ حذف معطى يزيد الخيارات الممكنة. ومن ثم فإعلان أنه لا توجد إجابة وحيدة ليس عجزًا عن الطرح، بل وصف للمجال الذي تركته البيانات مفتوحًا.
نعود إلى الفرعين الأولين، 400 وست و 403 وأربع. إذا أعطينا النتيجة المشتركة 407 فقط، لا نستنتج أن كل صف انتهى هناك. الأول انتهى عند 406 وفق تعريفنا، والثاني عند 407 ؛ اختيار الأكبر أخفى أحد الرقمين ولم يجعله مساويًا للآخر. وهذه حدود مهمة لمن يقرأ ملخصًا عدديًا: الناتج المجمع يمكن أن يحفظ شرطًا كافيًا للفحص الذي وصفناه، دون أن يحفظ جميع مدخلاته الأصلية.
وفي النهاية تظل جميع المقارنات تمارين على قيم مؤلفة وحقائق محددة من المصدرين، لا توصية عن دفع أو وقت قبول أو حالة رصيد. يمكن إعادة إنتاج النتائج من المدخلات المعلنة، ويمكن أيضًا تحديد المعلومة التي تنقص أي فرع آخر. تلك هي الفائدة العملية للقارئ: يميز البداية والمقدار ونوع الوحدة والمرجع، ثم يفهم بالضبط أي سؤال أجاب عنه الحساب وأي سؤال ما زال يحتاج بياناته.
نضيف إلى مسألة الاختيارات حسابًا أصليًا منفصلًا للتكلفة، دون أسعار فعلية. نعطي البدائل الثلاثة، خمسة وستة وسبعة، أثمانًا مؤلفة مقدارها تسع وثماني وخمس وحدات حسابية على الترتيب. إذا كان الطلب الوصول إلى النتيجة المحددة سابقًا بالضبط، بقي الست وحده، فتكون تكلفة الاختيار ثماني وحدات، رغم وجود خمس في القائمة. أما في الطلب الأوسع الذي يسمح بالبدائل الثلاثة، فالسبع هي الأرخص ضمن هذا الجزء المختار من القائمة. لا نستنتج أن الخمس يحقق الطلب الضيق من كونه الأرخص؛ يجب فصل صلاحية المرشح عن ترتيب أثمان المرشحين. وإذا لم يعط ثمن الخمسة، بقي ترتيب القائمة الكاملة مجهولًا، مع بقاء المقارنة بين الثماني والخمس ممكنة.
المصادر ومتابعة القراءة
- BIP68 (يفتح في نافذة جديدة)github.com
- Core: القيود (يفتح في نافذة جديدة)github.com
- موضوع: مفردات فقط (يفتح في نافذة جديدة)mawdoo3.com
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.