زمان کنونی: ۲۷ اردیبهشت ۱۴۰۳, ۰۴:۰۸ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

سوال از Linked List

ارسال:
  

alwaysPeace پرسیده:

سوال از Linked List

سلام
این سوال رو کتاب ... پاسخش رو گزینه ۱ زده. ولی به نظر من ۲ میشه.لطفا یکی از دوستان سوالو جواب بده ببینم درسته یا نه

[تصویر:  326847_g4aiexjlkzsz0eiv2tna.jpg]
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

MiladCr7 پاسخ داده:

RE: سوال از Linked List

سلام دقت کنید تعداد کل المان ها [tex]n 1[/tex] هستش درسته؟؟؟؟اولین مرحله از المان اول میره تا المان [tex]n[/tex] ام یعنی [tex]n[/tex] بار اجرا میشه بار بعدی از عنصر دوم شروع میشه تا المان [tex]n[/tex] ام اجرا میشه پس تعداد دفعات اجرا میشه [tex]n-1[/tex] و بار بعد میشه [tex]n-2[/tex] و...
پس داریم: [tex]1 2 ..... n-1 n=\frac{n(n 1)}{2}[/tex]
نقل قول این ارسال در یک پاسخ

ارسال:
  

alwaysPeace پاسخ داده:

RE: سوال از Linked List

(۲۵ دى ۱۳۹۳ ۱۲:۱۷ ق.ظ)miladcr7 نوشته شده توسط:  سلام دقت کنید تعداد کل المان ها [tex]n 1[/tex] هستش درسته؟؟؟؟اولین مرحله از المان اول میره تا المان [tex]n[/tex] ام یعنی [tex]n[/tex] بار اجرا میشه بار بعدی از عنصر دوم شروع میشه تا المان [tex]n[/tex] ام اجرا میشه پس تعداد دفعات اجرا میشه [tex]n-1[/tex] و بار بعد میشه [tex]n-2[/tex] و...
پس داریم: [tex]1 2 ..... n-1 n=\frac{n(n 1)}{2}[/tex]

خب بحث منم همینه که اولین المان در حلقه while دوم تا n نمیره. قبل از while اولی میره تو n (همون خط اول)، بعد تو while دومی قبل از این که writeln اجرا بشه دوباره یکی میره جلو (تو خط پنجم) و در واقع while دومی n-1 بار اجرا میشه و همینطور سری دوم میشه n-2 بار چون برای بار دوم while اول یکی میره جلو و به همین ترتیب تا آخر. به نظر من هنوزم گزینه ۲ جوابه.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

shayesteb پاسخ داده:

RE: سوال از Linked List

سلام Smile

اول کد نوشته که p به خونه بعد از l اشاره میکنه پس p به المان اول اشاره میکنه و از المان اول تا ان پیش میریم که n بار تکرار میشه و دفعه بدی که جلقه اجرا میشه یه خونه میریم جلوتر یعنی از المان دوم تا ان پیش میریم که n-1 میشه و همینطوری ادامه پیدا میکنه تا وقتی که حلقه فقط یک بار اجرا بشه.
نقل قول این ارسال در یک پاسخ

ارسال:
  

alwaysPeace پاسخ داده:

RE: سوال از Linked List

(۲۵ دى ۱۳۹۳ ۰۹:۱۹ ب.ظ)shayesteb نوشته شده توسط:  سلام Smile

اول کد نوشته که p به خونه بعد از l اشاره میکنه پس p به المان اول اشاره میکنه و از المان اول تا ان پیش میریم که n بار تکرار میشه و دفعه بدی که جلقه اجرا میشه یه خونه میریم جلوتر یعنی از المان دوم تا ان پیش میریم که n-1 میشه و همینطوری ادامه پیدا میکنه تا وقتی که حلقه فقط یک بار اجرا بشه.

سلام
ببینید شما اصلا حلقه دوم رو نادیده گرفتید! در صورتی که اصل نکته تو حلقه دومه. شما تعداد دفعات اجرای حلقه اول رو حساب کردید. منم قبول دارم که حلقه اول [tex]\frac{n(n 1)}{2}[/tex] بار اجرا میشه. اما سوال تعداد اجرا شدن writeln رو خواسته.

ببینید تو خط اول p یک واحد زیاد میشه و به المان اول اشاره می کنه. بعد میره تو حلقه while اول.
بعد تو خط سوم p رو میریزه تو q. یعنی الان هم p و هم q هر دو به المان اول اشاره میکنند. حالا q میره تو حلقه (خط چهارم) و نکته اصلی تو خط پنجمه. قبل از اینکه writeln اجرا بشه، دوباره q یک واحد زیاد میشه و میره رو المان بعد از المان اول (المان دوم) و بعد از این writeln اجرا میشه. یعنی writeln تو المان دوم شروع به اجرا شدن میکنه و تا المان آخر پیش میره که میشه n-1 بار . پس اولین بار writeln تعداد n-1 بار اجرا میشه و به همین ترتیب دفعات بعدی یکی کم میشه.
پس در کل writeln تعداد [tex]\frac{n(n-1)}{2}[/tex] بار اجرا میشه .

من وقت ندارم برنامه رو اجرا کنم اما مطمئنم که گزینه دوم درسته. اگه جای دو خط پنجم و ششم عوض بشه و خط پنجم بعد از خط ششم نوشته بشه، اون وقت گزینه اول میشه جواب.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

MiladCr7 پاسخ داده:

RE: سوال از Linked List

(۲۶ دى ۱۳۹۳ ۰۴:۲۰ ب.ظ)alwaysPeace نوشته شده توسط:  
(25 دى ۱۳۹۳ ۰۹:۱۹ ب.ظ)shayesteb نوشته شده توسط:  سلام Smile

اول کد نوشته که p به خونه بعد از l اشاره میکنه پس p به المان اول اشاره میکنه و از المان اول تا ان پیش میریم که n بار تکرار میشه و دفعه بدی که جلقه اجرا میشه یه خونه میریم جلوتر یعنی از المان دوم تا ان پیش میریم که n-1 میشه و همینطوری ادامه پیدا میکنه تا وقتی که حلقه فقط یک بار اجرا بشه.

سلام
ببینید شما اصلا حلقه دوم رو نادیده گرفتید! در صورتی که اصل نکته تو حلقه دومه. شما تعداد دفعات اجرای حلقه اول رو حساب کردید. منم قبول دارم که حلقه اول [tex]\frac{n(n 1)}{2}[/tex] بار اجرا میشه. اما سوال تعداد اجرا شدن writeln رو خواسته.

ببینید تو خط اول p یک واحد زیاد میشه و به المان اول اشاره می کنه. بعد میره تو حلقه while اول.
بعد تو خط سوم p رو میریزه تو q. یعنی الان هم p و هم q هر دو به المان اول اشاره میکنند. حالا q میره تو حلقه (خط چهارم) و نکته اصلی تو خط پنجمه. قبل از اینکه writeln اجرا بشه، دوباره q یک واحد زیاد میشه و میره رو المان بعد از المان اول (المان دوم) و بعد از این writeln اجرا میشه. یعنی writeln تو المان دوم شروع به اجرا شدن میکنه و تا المان آخر پیش میره که میشه n-1 بار . پس اولین بار writeln تعداد n-1 بار اجرا میشه و به همین ترتیب دفعات بعدی یکی کم میشه.
پس در کل writeln تعداد [tex]\frac{n(n-1)}{2}[/tex] بار اجرا میشه .

من وقت ندارم برنامه رو اجرا کنم اما مطمئنم که گزینه دوم درسته. اگه جای دو خط پنجم و ششم عوض بشه و خط پنجم بعد از خط ششم نوشته بشه، اون وقت گزینه اول میشه جواب.

سلام.این چیزی که شما میگی اصلا تاثیری نداره چون در عوضش وقتی توی حلقه دوم q رو null قرار میگیره بازم یه بار اجرا میشه پس این به اون در!!!دوباره میشه n+1 بار اجرا توی بار اول
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

alwaysPeace پاسخ داده:

RE: سوال از Linked List

(۲۶ دى ۱۳۹۳ ۰۴:۳۱ ب.ظ)miladcr7 نوشته شده توسط:  سلام.این چیزی که شما میگی اصلا تاثیری نداره چون در عوضش وقتی توی حلقه دوم q رو null قرار میگیره بازم یه بار اجرا میشه پس این به اون در!!!دوباره میشه n+1 بار اجرا توی بار اول

آخ آخ آخ!!!! کاملا درسته! به نظرم اینجا شهامت میخاد که آدم بگه اشتباه کردم که من میگمSmile حواسم به این نبود که در NULL هم یک بار اجرا میشه!!
البته من فکر می کنم خوتون هم اولش به این نکته توجه نکرده بودید! چون شما گفتید: "اولین مرحله از المان اول میره تا المان n ام یعنی n بار اجرا میشه بار بعدی از عنصر دوم شروع میشه" در صورتی در اولین مرحله، writeln زمانی که q در المان دوم هست اجرا میشه و تا المان n ام میره به علاوه یکبار هم در NULL و تو المان اولی هیچ وقت اجرا نمیشه و بار بعدی اجرا از عنصر سوم شروع میشه.

به هر حال خیلی ممنونم.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

mnpe پاسخ داده:

سوال از Linked List

اقا دفه اول q تو حلقه while که به عنصر اخر میرسه و میره داخل while و null میشه و writeln اجرا میشه و بعدش میاد بالا و شرط while رو چک میکنه و میبینه ک null شده.
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  معکوس کردن Linked list kilookiloo ۶ ۵,۳۶۱ ۲۶ فروردین ۱۳۹۶ ۱۱:۴۷ ق.ظ
آخرین ارسال: kilookiloo
  listview در linq to sql mosaferkuchulu ۲ ۲,۰۳۲ ۱۱ تیر ۱۳۹۱ ۱۰:۲۸ ق.ظ
آخرین ارسال: mosaferkuchulu

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close