تالار گفتمان مانشت
حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - نسخه‌ی قابل چاپ

حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - m-kafiyan - 05 آبان ۱۳۹۳ ۱۲:۱۳ ب.ظ

دانشمندان عزیز سلام Big Grin
دوستان من با این قسمت یک مشکلی دارم اول فکر کردم مفهوم سمافور رو خوب متوجه شدم اما الان یکم تو انحصار متقابل مشکل ایجاد شده برام. تو این قسمت اومده جواب سوال اینکه چند تا سمافور برای حل مسئله انحصار متقابل کافی هست رو بیان کرده
تو پاراگراف سوم میگه که :
مثلا به ازاء هر فرایند یک سمافور اگر داشته باشیم یعنی s1,s2,s3,..... بعد اگر یکی از فرایند های ما قبل از ورود به ناحیه بحرانی با اجرای down(si)l مثلا بلوکه بشه چطور فرایند درون ناحیه بحرانی میتونه بعد از خروج از ناحیه بحرانیش با اجرای up(sj بیدارش کنه؟ این کار امکان زیر نیست مگر اینکه i=j باشه
حالا مشکل اول اینکه با فرض اینکه هر فرایند داخل یک سمافور هست اگر هم حتی i=j باشه نمیشه بیدار کنه چون خودش که نمیتونه بلوکه باشه و تو ناحیه بحرانی هم باشه.
مشکل دوم و اصلی اینکه چرا نمیتونه بیدارش کنه؟ یعنی ما نمیتونیم هر فرایند رو بیدار کنیم از تو یک سمافوری که میخواهیم؟

RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - Hamzeh.S - 05 آبان ۱۳۹۳ ۱۲:۴۷ ب.ظ

باسلام فکرکنم جواب اینه که فرآیندهای سطح کاربرنمی توانند مقدارشمارنده سمافوریاتعدادفرایندهای درون صف آن راتست کرده یامستقیماتغییردهند(صفحه ۲۰۱ خط آخر).پس بنابراین یک فرآیندبایک سمافور j نمی تواند تعدادفرآیندهای بلوکه شده درسمافور i راتغییردهد.(البته i و j مساوی نیستند)

RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - m-kafiyan - 05 آبان ۱۳۹۳ ۰۱:۰۳ ب.ظ

(۰۵ آبان ۱۳۹۳ ۱۲:۴۷ ب.ظ)King2 نوشته شده توسط:  باسلام فکرکنم جواب اینه که فرآیندهای سطح کاربرنمی توانند مقدارشمارنده سمافوریاتعدادفرایندهای درون صف آن راتست کرده یامستقیماتغییردهند(صفحه ۲۰۱ خط آخر).پس بنابراین یک فرآیندبایک سمافور j نمی تواند تعدادفرآیندهای بلوکه شده درسمافور i راتغییردهد.(البته i و j مساوی نیستند)

فکر نمیکنم آخه نگاه کنید خودش میگه فرایند های سطح کاربر میتونند تنها سه کار رو انجام بدهند.مقداردهی،up و down اینجا هم داریم میگیم up[si مثلا ،نباید مشکل باشه چون شما دارید با up کار میکنین به متغییر داخلی count دست نزدید و تستش هم نکردیم که و up هم که اتومیک هست.
مگه اینکه من درست متوجه اون تیکه ای که نمیتونیم به مقدار شمارنده یا تعداد فرآینده های درون آن رو تست کرد یا مستقیما تغییر داد نشده باشم.اگر فکر میکنید اشتباه این رو هم متوجه شده ام لطفا توضیحش بدهید.مرسی

RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - Hamzeh.S - 05 آبان ۱۳۹۳ ۰۲:۱۴ ب.ظ

(۰۵ آبان ۱۳۹۳ ۰۱:۰۳ ب.ظ)m-kafiyan نوشته شده توسط:  
(05 آبان ۱۳۹۳ ۱۲:۴۷ ب.ظ)King2 نوشته شده توسط:  باسلام فکرکنم جواب اینه که فرآیندهای سطح کاربرنمی توانند مقدارشمارنده سمافوریاتعدادفرایندهای درون صف آن راتست کرده یامستقیماتغییردهند(صفحه ۲۰۱ خط آخر).پس بنابراین یک فرآیندبایک سمافور j نمی تواند تعدادفرآیندهای بلوکه شده درسمافور i راتغییردهد.(البته i و j مساوی نیستند)

فکر نمیکنم آخه نگاه کنید خودش میگه فرایند های سطح کاربر میتونند تنها سه کار رو انجام بدهند.مقداردهی،up و down اینجا هم داریم میگیم up[si مثلا ،نباید مشکل باشه چون شما دارید با up کار میکنین به متغییر داخلی count دست نزدید و تستش هم نکردیم که و up هم که اتومیک هست.
مگه اینکه من درست متوجه اون تیکه ای که نمیتونیم به مقدار شمارنده یا تعداد فرآینده های درون آن رو تست کرد یا مستقیما تغییر داد نشده باشم.اگر فکر میکنید اشتباه این رو هم متوجه شده ام لطفا توضیحش بدهید.مرسی
حرف شما درسته که مابه count دست نزدیم اما با up کردن روی سمافورمربوط به یک فرآینددیگه اگه فرآیندی روی اون بلوکه شده باشه، باعث تغییرتعدادفرآیندهای درصف اون می شیم. این طورنیست؟

RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - m-kafiyan - 05 آبان ۱۳۹۳ ۰۶:۲۹ ب.ظ

(۰۵ آبان ۱۳۹۳ ۰۲:۱۴ ب.ظ)King2 نوشته شده توسط:  
(05 آبان ۱۳۹۳ ۰۱:۰۳ ب.ظ)m-kafiyan نوشته شده توسط:  
(05 آبان ۱۳۹۳ ۱۲:۴۷ ب.ظ)King2 نوشته شده توسط:  باسلام فکرکنم جواب اینه که فرآیندهای سطح کاربرنمی توانند مقدارشمارنده سمافوریاتعدادفرایندهای درون صف آن راتست کرده یامستقیماتغییردهند(صفحه ۲۰۱ خط آخر).پس بنابراین یک فرآیندبایک سمافور j نمی تواند تعدادفرآیندهای بلوکه شده درسمافور i راتغییردهد.(البته i و j مساوی نیستند)

فکر نمیکنم آخه نگاه کنید خودش میگه فرایند های سطح کاربر میتونند تنها سه کار رو انجام بدهند.مقداردهی،up و down اینجا هم داریم میگیم up[si مثلا ،نباید مشکل باشه چون شما دارید با up کار میکنین به متغییر داخلی count دست نزدید و تستش هم نکردیم که و up هم که اتومیک هست.
مگه اینکه من درست متوجه اون تیکه ای که نمیتونیم به مقدار شمارنده یا تعداد فرآینده های درون آن رو تست کرد یا مستقیما تغییر داد نشده باشم.اگر فکر میکنید اشتباه این رو هم متوجه شده ام لطفا توضیحش بدهید.مرسی
حرف شما درسته که مابه count دست نزدیم اما با up کردن روی سمافورمربوط به یک فرآینددیگه اگه فرآیندی روی اون بلوکه شده باشه، باعث تغییرتعدادفرآیندهای درصف اون می شیم. این طورنیست؟

حرفتون درسته اما اینجا اومده کلمه مستقیم رو استفاده کرده . من فکر میکردم وقتی داره میگه مستقیم منظورش با استفاده از up و down دیگه نیست.آخه دکتر حقیقت تو کلاسشون گفتند به جز up و down و مقدار دهی اولیه هیچ راهی برای دسترسی به سمافور وجود نداره.خوب این راه رو خودش باز گذاشته دیگه.مثلا یک جا هست که تو کلاسشون گفتند یکی نقل کرده که سمافور ها خوب نیست چون دست ادم رو میبنده نمیتونیم هر فرآیندی که میخواهیم رو از خواب بیدار کنیم که دکتر حقیقت در پاسخ گفتند چرا برای چی نشه؟ برای اون فرایند خاص یک سمافور خاص تعریف میکنیم هر وقت لازم شد بیدارش میکنیم. خوب از اینجا میشه این نتیجه رو گرفت یا حداقل من گرفتم که وقتی تنها یک فرایند تو یک سمافور خواب باشه نمیتونه خودش خودش رو بیدار کنه یکی دیگه باید بیدارش کنه ه اون یکی دیگه قطعا یک فرایند دیگه است که حالا میتونه اون فرآیند اگر بخواهد down شه رو یک سمافور دیگه down خواهد شد.
فکرکنم خیلی دیگه دارم اشتباه میگم نه؟ یک جای فکرم غلطه اما نمیتونم پیداش کنم که کجاش غلطه

Re: RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - ldns0098 - 06 آبان ۱۳۹۳ ۱۲:۵۷ ق.ظ

(۰۵ آبان ۱۳۹۳ ۱۲:۱۳ ب.ظ)m-kafiyan نوشته شده توسط:  دانشمندان عزیز سلام Big Grin
دوستان من با این قسمت یک مشکلی دارم اول فکر کردم مفهوم سمافور رو خوب متوجه شدم اما الان یکم تو انحصار متقابل مشکل ایجاد شده برام. تو این قسمت اومده جواب سوال اینکه چند تا سمافور برای حل مسئله انحصار متقابل کافی هست رو بیان کرده
تو پاراگراف سوم میگه که :
مثلا به ازاء هر فرایند یک سمافور اگر داشته باشیم یعنی s1,s2,s3,..... بعد اگر یکی از فرایند های ما قبل از ورود به ناحیه بحرانی با اجرای down(si)l مثلا بلوکه بشه چطور فرایند درون ناحیه بحرانی میتونه بعد از خروج از ناحیه بحرانیش با اجرای up(sj بیدارش کنه؟ این کار امکان زیر نیست مگر اینکه i=j باشه
حالا مشکل اول اینکه با فرض اینکه هر فرایند داخل یک سمافور هست اگر هم حتی i=j باشه نمیشه بیدار کنه چون خودش که نمیتونه بلوکه باشه و تو ناحیه بحرانی هم باشه.
مشکل دوم و اصلی اینکه چرا نمیتونه بیدارش کنه؟ یعنی ما نمیتونیم هر فرایند رو بیدار کنیم از تو یک سمافوری که میخواهیم؟

اومدم بخوابم این سوالو دیدم رفت تو مخم که باید جواب بدمشBig Grin... ببینید من برداشتم در مورد این پاراگراف اینه که اینکه ما همزمان از چند تا سمافور برای انحصار متقابل استفاده کنیم جالب نیس. یعنی در واقع میتونیم از چند تا سمافور استفاده کنیم اما فقط یکیش باید برای ارضای شرط انحصار متقابل باشه چون اگه مثلا برای ورود به ناحیه بحرانی فرآیندها سه تا سمافور تعریف کنیم وقتی فرآیند ۱ میخواد بره تو ناحیه بحرانیش، شما عمل خوابیدن رو روی سمافور ۲ انجام میدی که مربوط به فرآیند ۲ هست( چون در ازای هر فرآیند یه سمافور تعریف کردین). حالا وقتی فرآیند ۱ کارش تو ناحیه بحرانی تموم شه از کجا بدونه باید عمل بیدار کردن رو روی کدوم سمافور انجام بده؟ ۲ یا ۳ ؟
پس اینکه برای هر فرآیند یه سمافور تعریف کنی کار درستی نیس

حالا برای مشکل اولتون، سمافور یک فرآیند خود اون فرآیند نیست. سمافور خوابیدن و بیدار شدن رو کنترل میکنه. فرض کنید شما مدیر یک جلسه اید و دو تا کارمند دارید که نمیخواین همزمان حضور پیدا کنن و دو تا منشی دارین.
وقتی کارمند ۱ وارد شد به منشی ۱ میگید که جلوی ورود کارمند ۲ رو بگیره
و زمانی که کارمند ۱ جلسه رو ترک کرد به منشی ۲ میگید که اجازه بده کارمند ۱ وارد شه در صورتی که منشی ۱ جلوی ورود کارمند۲ رو گرفته نه منشی ۲/ پس کارمند ۲ منتظر میمونه و به جلسه راه پیدا نمیکنه چون شما دو تا منشی داشتید. حالا منشی ها سمافورن. کارمندا فرآیند.
امیدوارم این مثال من درآوردی Big Grin کمکتون کنه.

RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - m-kafiyan - 06 آبان ۱۳۹۳ ۰۹:۲۱ ق.ظ

(۰۶ آبان ۱۳۹۳ ۱۲:۵۷ ق.ظ)ldns0098 نوشته شده توسط:  
(05 آبان ۱۳۹۳ ۱۲:۱۳ ب.ظ)m-kafiyan نوشته شده توسط:  دانشمندان عزیز سلام Big Grin
دوستان من با این قسمت یک مشکلی دارم اول فکر کردم مفهوم سمافور رو خوب متوجه شدم اما الان یکم تو انحصار متقابل مشکل ایجاد شده برام. تو این قسمت اومده جواب سوال اینکه چند تا سمافور برای حل مسئله انحصار متقابل کافی هست رو بیان کرده
تو پاراگراف سوم میگه که :
مثلا به ازاء هر فرایند یک سمافور اگر داشته باشیم یعنی s1,s2,s3,..... بعد اگر یکی از فرایند های ما قبل از ورود به ناحیه بحرانی با اجرای down(si)l مثلا بلوکه بشه چطور فرایند درون ناحیه بحرانی میتونه بعد از خروج از ناحیه بحرانیش با اجرای up(sj بیدارش کنه؟ این کار امکان زیر نیست مگر اینکه i=j باشه
حالا مشکل اول اینکه با فرض اینکه هر فرایند داخل یک سمافور هست اگر هم حتی i=j باشه نمیشه بیدار کنه چون خودش که نمیتونه بلوکه باشه و تو ناحیه بحرانی هم باشه.
مشکل دوم و اصلی اینکه چرا نمیتونه بیدارش کنه؟ یعنی ما نمیتونیم هر فرایند رو بیدار کنیم از تو یک سمافوری که میخواهیم؟

اومدم بخوابم این سوالو دیدم رفت تو مخم که باید جواب بدمشBig Grin... ببینید من برداشتم در مورد این پاراگراف اینه که اینکه ما همزمان از چند تا سمافور برای انحصار متقابل استفاده کنیم جالب نیس. یعنی در واقع میتونیم از چند تا سمافور استفاده کنیم اما فقط یکیش باید برای ارضای شرط انحصار متقابل باشه چون اگه مثلا برای ورود به ناحیه بحرانی فرآیندها سه تا سمافور تعریف کنیم وقتی فرآیند ۱ میخواد بره تو ناحیه بحرانیش، شما عمل خوابیدن رو روی سمافور ۲ انجام میدی که مربوط به فرآیند ۲ هست( چون در ازای هر فرآیند یه سمافور تعریف کردین). حالا وقتی فرآیند ۱ کارش تو ناحیه بحرانی تموم شه از کجا بدونه باید عمل بیدار کردن رو روی کدوم سمافور انجام بده؟ ۲ یا ۳ ؟
پس اینکه برای هر فرآیند یه سمافور تعریف کنی کار درستی نیس

حالا برای مشکل اولتون، سمافور یک فرآیند خود اون فرآیند نیست. سمافور خوابیدن و بیدار شدن رو کنترل میکنه. فرض کنید شما مدیر یک جلسه اید و دو تا کارمند دارید که نمیخواین همزمان حضور پیدا کنن و دو تا منشی دارین.
وقتی کارمند ۱ وارد شد به منشی ۱ میگید که جلوی ورود کارمند ۲ رو بگیره
و زمانی که کارمند ۱ جلسه رو ترک کرد به منشی ۲ میگید که اجازه بده کارمند ۱ وارد شه در صورتی که منشی ۱ جلوی ورود کارمند۲ رو گرفته نه منشی ۲/ پس کارمند ۲ منتظر میمونه و به جلسه راه پیدا نمیکنه چون شما دو تا منشی داشتید. حالا منشی ها سمافورن. کارمندا فرآیند.
امیدوارم این مثال من درآوردی Big Grin کمکتون کنه.

مثال دومتون که اصلا متوجه نشدم Big Grin اما کلا در اون حدی که جواب سوالم رو بگیرم گرفتم میخواهید چی بگین
برای جواب سوال اصلی هم اینطوری که من متوجه شدم نظرتون این هست که فرآیندی که از ناحیه بحرانی خارج میشه نمیدونه کدوم یکی از فرایند هایی رو که روی سمافور ها به خواب رفتن رو بیدار کنه؟ نه این که نتونه فقط نمیدونه. خوب نظر منطقی هست چون ممکنه قحطی برای تعدادی از فرآیند ها پیش بیاد.به نظرم این موضوع داره کم کم جواب درستش در میاد.باید یکم روش بیشتر فکر کنم Big Grin

Re: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - ldns0098 - 06 آبان ۱۳۹۳ ۰۹:۴۷ ق.ظ

عه؟ مثال دومم خیلی خوب بود به نظر خودم.Big Grin

RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - m-kafiyan - 06 آبان ۱۳۹۳ ۱۱:۴۴ ق.ظ

(۰۶ آبان ۱۳۹۳ ۰۹:۴۷ ق.ظ)ldns0098 نوشته شده توسط:  عه؟ مثال دومم خیلی خوب بود به نظر خودم.Big Grin
یک نکته ای هست ها.نگاه کنین اگر اینجوری که ما فرض گرفیتیم باشه پس تو حل مسئله غذاخوردن فیلسوف ها با سمافور به مشکل میخوریم.چون اونجا هم به تعداد فیلسوف ها سمافور هست پس نباید بدونه کدوم یکی از فیلسوف ها رو بیدار کنه؟ درسته؟ ارجاع به صفحه ۲۰۷ و ۲۰۸ پارسه

RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - Hamzeh.S - 06 آبان ۱۳۹۳ ۰۹:۲۳ ب.ظ

(۰۵ آبان ۱۳۹۳ ۰۶:۲۹ ب.ظ)m-kafiyan نوشته شده توسط:  
(05 آبان ۱۳۹۳ ۰۲:۱۴ ب.ظ)King2 نوشته شده توسط:  
(05 آبان ۱۳۹۳ ۰۱:۰۳ ب.ظ)m-kafiyan نوشته شده توسط:  
(05 آبان ۱۳۹۳ ۱۲:۴۷ ب.ظ)King2 نوشته شده توسط:  باسلام فکرکنم جواب اینه که فرآیندهای سطح کاربرنمی توانند مقدارشمارنده سمافوریاتعدادفرایندهای درون صف آن راتست کرده یامستقیماتغییردهند(صفحه ۲۰۱ خط آخر).پس بنابراین یک فرآیندبایک سمافور j نمی تواند تعدادفرآیندهای بلوکه شده درسمافور i راتغییردهد.(البته i و j مساوی نیستند)

فکر نمیکنم آخه نگاه کنید خودش میگه فرایند های سطح کاربر میتونند تنها سه کار رو انجام بدهند.مقداردهی،up و down اینجا هم داریم میگیم up[si مثلا ،نباید مشکل باشه چون شما دارید با up کار میکنین به متغییر داخلی count دست نزدید و تستش هم نکردیم که و up هم که اتومیک هست.
مگه اینکه من درست متوجه اون تیکه ای که نمیتونیم به مقدار شمارنده یا تعداد فرآینده های درون آن رو تست کرد یا مستقیما تغییر داد نشده باشم.اگر فکر میکنید اشتباه این رو هم متوجه شده ام لطفا توضیحش بدهید.مرسی
حرف شما درسته که مابه count دست نزدیم اما با up کردن روی سمافورمربوط به یک فرآینددیگه اگه فرآیندی روی اون بلوکه شده باشه، باعث تغییرتعدادفرآیندهای درصف اون می شیم. این طورنیست؟

حرفتون درسته اما اینجا اومده کلمه مستقیم رو استفاده کرده . من فکر میکردم وقتی داره میگه مستقیم منظورش با استفاده از up و down دیگه نیست.آخه دکتر حقیقت تو کلاسشون گفتند به جز up و down و مقدار دهی اولیه هیچ راهی برای دسترسی به سمافور وجود نداره.خوب این راه رو خودش باز گذاشته دیگه.مثلا یک جا هست که تو کلاسشون گفتند یکی نقل کرده که سمافور ها خوب نیست چون دست ادم رو میبنده نمیتونیم هر فرآیندی که میخواهیم رو از خواب بیدار کنیم که دکتر حقیقت در پاسخ گفتند چرا برای چی نشه؟ برای اون فرایند خاص یک سمافور خاص تعریف میکنیم هر وقت لازم شد بیدارش میکنیم. خوب از اینجا میشه این نتیجه رو گرفت یا حداقل من گرفتم که وقتی تنها یک فرایند تو یک سمافور خواب باشه نمیتونه خودش خودش رو بیدار کنه یکی دیگه باید بیدارش کنه ه اون یکی دیگه قطعا یک فرایند دیگه است که حالا میتونه اون فرآیند اگر بخواهد down شه رو یک سمافور دیگه down خواهد شد.
فکرکنم خیلی دیگه دارم اشتباه میگم نه؟ یک جای فکرم غلطه اما نمیتونم پیداش کنم که کجاش غلطه

باسلام مجدد
اولا ازبابت نظرنسنجیدم واینکه باعث گمراهی شماشدم واقعا عذرخواهی می کنم.ببخشید.
فکرکنم اگه این طوری درنظربگیریم مشکل حل بشه.سه تافرآیند ۱و۲و۳ باسه سمافور برای ورودبه ناحیه بحرانی رودرنطربگیرید.فرض کنیدفرآیند اول روی سمافور۱ بلوکه شده وفرآیند۲ داخل ناحیه بحرانی هست.فرآیند۲درهنگام خروج روی سمافورفرآیند۳(که میتونه اصلا قصدورودبه ناحیه بحرانی روفعلانداشته باشه)up می کنه واین یعنی نقض شرط پیشرفت.توجه کنید که این حالت امکان پذیره چون فرآیند۲ ازاینکه کدوم فرآیند برای ورودبه ناحیه بحرانیش بلوکه شده خبرنداره.راه حل هم همونطورکه کتاب گفته اینه که فقط یک سمافورداشته باشیم.
توجه کنید که حالت فوق برای دوفرآینداتفاق نمی افته که فکرمیکنم دلیلش روخودتون هم می دونید.

RE: حل مسئله انحصار متقابل با استفاده از سمافور ها (صفحه ۲۰۲ پارسه پاراگراف سه) - m-kafiyan - 07 آبان ۱۳۹۳ ۰۶:۵۲ ب.ظ

باسلام مجدد
اولا ازبابت نظرنسنجیدم واینکه باعث گمراهی شماشدم واقعا عذرخواهی می کنم.ببخشید.
فکرکنم اگه این طوری درنظربگیریم مشکل حل بشه.سه تافرآیند ۱و۲و۳ باسه سمافور برای ورودبه ناحیه بحرانی رودرنطربگیرید.فرض کنیدفرآیند اول روی سمافور۱ بلوکه شده وفرآیند۲ داخل ناحیه بحرانی هست.فرآیند۲درهنگام خروج روی سمافورفرآیند۳(که میتونه اصلا قصدورودبه ناحیه بحرانی روفعلانداشته باشه)up می کنه واین یعنی نقض شرط پیشرفت.توجه کنید که این حالت امکان پذیره چون فرآیند۲ ازاینکه کدوم فرآیند برای ورودبه ناحیه بحرانیش بلوکه شده خبرنداره.راه حل هم همونطورکه کتاب گفته اینه که فقط یک سمافورداشته باشیم.
توجه کنید که حالت فوق برای دوفرآینداتفاق نمی افته که فکرمیکنم دلیلش روخودتون هم می دونید.
[/quote]
نه خواهش میکنم مهم اینکه مسئله به جواب درست برسه بلاخره تو حل هر مسئله زیاد ایده داده میشه.
فکر میکنم اینی که میگین منطقی تر هست نسبت به تمام جواب هایی که تا حالا شندیم و احتمال خیلی زیاد هم درست تر هست.