$ \ phi_1= 1 دولار أو $ \ phi_1= 2 دولار للاتصالات الحيوية $ \ Text {Table-Insert} $، حيث $ \ Phi_i $ هي الوظيفة المحتملة بعد عملية $ I $ z العملية، حسب CLRS

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

سؤال

ما يلي يأتي من القسم الجداول الديناميكية ، مقدمة إلى الخوارزميات بواسطة cormen. وآخرون آل.


في pseudoodocode التالية، نفترض أن $ T $ هو كائن يمثل الجدول. يحتوي الحقل جدول $ [t] $ يحتوي على مؤشر إلى كتلة التخزين التي تمثل الجدول. الحقل $ num [t] $ يحتوي على عدد العناصر الموجودة في الجدول، والحقل حجم $ [t] $ هو إجمالي عدد الفتحات في الجدول. في البداية، الجدول فارغ: $ num [t]= الحجم [t]= 0 $ .

$ \ text {table-insert (t، x)} $

$ 1 \ quad \ text {IF حجم $ [t]= 0 $} $

$ 2 \ quad \ quad \ text {ثم تخصيص $ regly [t] $ مع فتحة $ 1 $} $

3 دولارات \ رباعية الحجم [t] \ اليسار 1 $

$ 4 \ quad \ text {if} num [t]= الحجم [t] $

$ 5 \ quad \ quad \ text {ثم تخصيص $ {\ text {-}} الجدول $ مع حجم 2 $ \ idot [t] $ slots} $

$ 6 \ quad \ quad \ quad \ text \ text {أدخل جميع العناصر في طاولة $ [t] $ إلى $ {\ text {-}} الجدول $} $

7 دولارات \ رباعية \ رباعية \ رباعية \ text {حرة $ طاولة [T] $} $

$ 8 \ quad \ quad \ quad \ table [t] \ rightarrow جديد {\ text {-}} الجدول $

9 دولارات \ رباعية \ رباعية الحجم [t] \ rightarrow 2 \ cdot الحجم [t] $

10 دولارات \ quad \ text {أدخل $ x $ إلى طاولة $ [t] $} $

$ 11 \ quad num [t] \ ledarrow num [t] + 1 $

للحصول على التحليل المطفأة لتسلسل $ n $ $ \ text {table-inser} $ الوظيفة المحتملة التي يختارونها هي كما يلي،

$$ \ PHI (T)= 2.Num [t] -Size [t] $

لتحليل التكلفة المطفأة في $ i $ th $ \ text {table-inser} $ العملية، نسمح $ num_i $ تشير إلى عدد العناصر المخزنة في الجدول بعد $ i $ $ عملية التشغيل، $ size_i $ تشير إلى الحجم الكلي للجدول بعد $ i $ التشغيل، و $ \ phi_i $ تدل على الإمكانات بعد $ I i $ oribe.

في البداية، لدينا $ num_0= 0، size_0= 0 $ ، و $ \ phi_0= 0 $ .

إذا كانت $ I $ تشغيل الجدول الإدراج لا يؤدي إلى توسيع، ثم لدينا $ size_i= size_ {II} $ و $ num_i= num_ {i-1} + 1 $ ، التكلفة المطفأة للعملية هي $ \ Widehat {c_i} $ هي التكلفة المطفأة و $ c_i $ هي التكلفة الإجمالية.

$$ \ widehat {c_i}= c_i + \ phi_i- \ phi_ {i-1}= 3 \ text {(تفاصيل غير موضحة)} $ < / ص>

إذا كانت $ I $ تقوم العملية بتشغيل توسع، ثم لدينا $ size_i= 2. Size_ {I-1} $ و $ size_ {i-1}= num_ {i-1}= num_i -1 $ ، لذلك مرة أخرى، < / ص>

$$ \ widehat {c_i}= c_i + \ phi_i- \ phi_ {i-1}= 3 \ text {(تفاصيل غير موضحة)} $ < / ص>


الآن المشكلة هي أنها لا تجعل الحسابات ل $ \ widehat {c_1} $ ، الوضع للحصول على أول إدخال يتم تنفيذ العنصر في الجدول (السطر 1،2،3،10،11 من التعليمات البرمجية فقط).

في هذه الحالة، تكلفة $ c_1= 1 دولار ، $ \ phi_0= 0 $ و $ num_1= size_1= 1 \ implies \ phi_1= 2.1-1= 1 دولار

نرى أن $ \ phi_1= 1 \ tag 1 $

لذلك، $$ \ widehat {c_1}= c_1 + \ phi_1- \ phi_0= 2 $$

ولكن النص يقول أن التكلفة المطفأة هي 3 دولارات $ ، (أشعر أنه كان يجب أن يقول التكلفة المطفأة في معظم $ 3 $ ، من ما يمكنني فهمه)

علاوة على المؤامرة أدناه،

href="https://i.stack.imgur.com/vhg1l.png" er="nofollow noreferrer">  مؤامرة

يمثل النص بيانيا بيانيا $ \ phi_1= 2 $ أي نوع من المتناقضات

ER "> $ (1) $ ، ولكن حسب الرسم البياني إذا افترضنا $ \ phi_1= 2 $ ثم $ \ widehat {c_i}= 3، \ forall i $

أنا لا أحصل على المكان الذي أجعله مخطئا.

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

المحلول

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

لتكرار، هو الصحيح أن "تكلفة $ c_1= 1 $ ، $ \ phi_0= 0 $ < / span> "،" $ num_1= size_1= 1 $ $ \ implies $ $ \ phi_1= 2 \ cdot1-1= 1 $ " و " $ \ hat {c_1}= $ $ c_1 + \ phi_1- \ phi_0 $ $= 2 $ ". من غير الصحيح أن تنزيل أن $ \ widehat c_i= 3 $ لجميع $ i $ .

أول $ \ text {t} \ scriptsize {\ text {counect}} \ small \ text {-i} \ scriptsize \ text {nsert} $ العملية هي في الواقع خاصة جدا. لا يعتبر توسيعا، وحدث يعرف بأنه "يتم تنفيذ الأسطر 5-9". ومع ذلك، فإنه لا يحافظ على $ size_i= size_ {i-1} $ ، إما. لذلك لا حساب ل $ \ widehat {c_i} $ في كتاب مدرسي مناسب ل $ \ widehat {c_1} $ .

هذا الخطأ مربك بالنظر إلى أننا نميل إلى الوثوق بكامل كاملا كتابيا مثاليا حيث تم دفع الكثير من الاهتمام بالتفاصيل والصحة.

من ناحية أخرى، هذا الخطأ غير مهم للغاية منذ ذلك الحين، كما لاحظت، فإنه لا يزال يحتفظ بأن "التكلفة المطفأة على الأكثر 3".

بالمناسبة، إذا كنت تأخذ نظرة فاحصة على الرقم في نهاية السؤال، فهو يعرض الإمكانات في نهاية أول $ \ text {t} \ scriptsize { \ text {cer}} \ small \ text {-i} \ scriptsize \ text {nsert} $ العملية، $ \ phi_1= 1 $ ، القيمة الصحيحة.

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