كيفية العثور على حلقة ثابتة في هوار ثلاثة أضعاف

cs.stackexchange https://cs.stackexchange.com/questions/119494

  •  28-09-2020
  •  | 
  •  

سؤال

يا أنا جديد لأرهيرة ثلاثية، ولا أستطيع أن أفهم على العثور على ثابتة حلقة في الفرضية.على سبيل المثال، هذا أثناء الحلقة

giveacodicetagpre.

الثبات هو [2x + y> 5] لكنني لا أفهم كيفية العثور عليه.شرح خطوة بخطوة حول كيفية العثور على موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

فهم أولا معنى ثابتة حلقة. وهذا يعني حالة صحيحة في كل تكرار للبرنامج / الخوارزمية في البداية وكذلك في إنهاء الحلقة. برنامجك شيء مثل هذا.

$$ x> 1 \ text {and} y> 1 $$

text \ text {بينما} x> 0 $$

$$ \ hspace {4cm} \ text {do} x:= x - 1، y:= y + 2 $$

$ \ text {end}}

$$ X + Y> 5 $$

$ 2x + y> 5 $ هو ثابت كما وصفته. مرئي من البرنامج الذي $ x $ و $ y $ سيكون أكبر من $ 1 $ خلال أول iterataion of the loop. لذلك في التكرار الأول أثناء حلقة $ 2x + y> 5 $ (يمكنك إثبات ذلك). إشعار في كل تكرار من أثناء حلقة القيم $ x $ يحصل على انخفاض حسب القيمة $ 1 $ و تعزز قيمة Y زيادة من قبل اثنين من عدم المساواة $ 2x + y> 5 $ سوف تكون راضية. يمكنك إثبات ذلك. تأتي الآن إلى حالة الإنهاء، في هذه المرحلة ستكون $ X $ رقم سالب وأكثر ادعاءتي هي قيمة $ y $ ستكون على الأقل $ 5 $ . وبالتالي فإن Invariant $ 2x + y> 5 $ si true the تكرار الحلقة أثناء ذلك.

مثال:

دع $ x= 2 $ و $ y= 2 $ ، ثم $ 2 \ مرات 2 + 2= 6> 5 $ راضي. الآن في التكرار الثاني $ x= 1، y= 4 $ حتى $ 1 \ Times 2 + 4> 5 $ راضي. الآن $ x= 0، y= 6 $ ، loop تم إنهاءها، $ 2 \ مرات 0 + 6> 5 $ .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى cs.stackexchange
scroll top