يمكن استخدام البحث الثنائي ليس فقط للعثور على العناصر في المصفوفة ، ولكن أيضًا للعثور على جذور المعادلات وقيم الدوال الرتيبة (المتزايدة أو المتناقصة).
دعونا نحصل على وظيفة رتيبة
f
وبعض القيمة
C
لهذه الوظيفة. ابحث عن قيمة وسيطة
x
لهذه الدالة ، مثل
\ (f (x) = C \) .
نبسب ؛
مثال على دالة رتيبة متزايدة: h5>
نختار مثل هذه الحدود حيث تكون قيمة الوظيفة أكبر تمامًا وأقل تمامًا من القيمة المحددة. دعنا نختار القيمة في منتصف هذا المقطع. إذا كان أقل من الحد المعطى ، فإننا نحول الحد الأيسر إلى منتصف المقطع. خلاف ذلك ، سنقوم بتغيير الحد الأيمن. بعد ذلك ، نكرر عملية تضييق الحدود. ولكن هناك مشكلة عندما تتوقف عن البحث. قراءة المزيد & nbsp؛ هنا .
نبسب ؛
على سبيل المثال ، ضع في اعتبارك مشكلة إيجاد الجذر التربيعي للرقم x
. الجذر التربيعي لـ x
(يُشار إليه بـ \ (\ sqrt x \) ) هو رقم y
بحيث \ (y ^ 2 = x \) .
لنقم بصياغة المشكلة على النحو التالي: للحصول على رقم حقيقي معين
x
(
\ (x & gt؛ = 1 \) ) ابحث عن جذر تربيعي بدقة لا تقل عن 5 أحرف بعد النقطة.
نبسب ؛
تحديد حد المقطع للبحث
نظرًا لأنه لا يمكننا التحقق من اللانهاية الكاملة للأرقام ، فنحن بحاجة إلى تحديد حدود البحث عن الجذر. أولاً ، لنجد الحد الأيسر ، حدد نقطة سلبية عشوائية (على سبيل المثال: -1). سنضاعفها حتى تصبح القيمة فيها أكبر من القيمة المعطاة. للعثور على الحد الصحيح ، نختار نقطة إيجابية عشوائية (على سبيل المثال: 1). سنضاعفها حتى تصبح قيمة الوظيفة في هذه المرحلة أقل من القيمة المحددة.
أو ، إذا عرفنا حدود البحث بالضبط ، فيمكننا أخذ 1 كحد أيسر والرقم نفسه
x
.
بعد ذلك ، نقسم المقطع الحالي إلى النصف ، ونقوم بتربيع الجزء الأوسط ، وإذا كان أكبر من x ، فقم باستبدال الوجه العلوي ، وإلا & nbsp؛ أسفل.
نبسب ؛
التنفيذ النهائي: h5>
حيث ،
eps
- الدقة التي يجب البحث عنها في الحل ،
x
- رقم معطى جذره التربيعي ،
m
- الرقم الذي سيتم فيه تخزين
النتيجة strong> بعد تنفيذ الخوارزمية.
نبسب ؛