معمای برج و تخم مرغ

23
این مطلب به بوک‌مارک‌ها اضافه شد
این مطلب از بوک‌مارک‌ها حذف شد

یکی از سوالاتی که سالهاست در اینترنت به عنوان معما مطرح می شود مسئله ی جذاب و پرنکته ی « برج و تخم مرغ » است. تا آن حد که گاهی به عنوان تست استخدام گوگل و مایکروسافت از آن یاد می شود . در هر صورت مهم نیست این سوال کی مطرح شده و ریشه اش از کجاست. ما صرفا برای این که لذت ببریم می خواهیم کمی موشکافانه تر به این معمای زیبا نگاهی بیندازیم.

یکی از سوالاتی که سالهاست در اینترنت به عنوان معما مطرح می شود  مسئله ی جذاب و پرنکته ی « برج و تخم مرغ » است. تا آن حد که  گاهی به عنوان تست استخدام گوگل  و مایکروسافت از آن یاد می شود . در هر صورت مهم نیست این سوال کی مطرح شده و ریشه اش از کجاست. ما صرفا برای این که لذت ببریم می خواهیم  کمی موشکافانه تر به این معمای زیبا نگاهی بیندازیم.

مساله:

دو عدد تخم‌مرغ  و  یک ساختمان صد طبقه  در اختیار شما قرار می دهند. قرار است که تخم مرغ ها را از طبقات مختلف به پایین پرتاب کنیم . خوشتان آمد ؟ عجله نکنید این قدرها هم که به نظر می آید آسان نیست .

هر دو تخم مرغ کاملا مشابه هم هستند ولی مشخص نیست که تخم مرغ های ما تا کجا مقاومت می کنند و با پرتاب از کدام طبقه  می شکنند . پس هدف ما پیدا کردن بالاترین طبقه ای است که اگر تخم مرغ از آنجا پرتاب شود با برخورد به زمین نمی شکند. اگر تخم مرغی پرتاب شد و با برخورد با زمین نشکست ، میتوان دوباره آن را پرتاب کرد. اما در صورتی که تخم مرغ شکست دیگر کار ما با آن تمام است.

d

سوال این است:  با چه استراتژی ای می توانیم با کمترین  پرتاب تخم مرغ پاسخ دقیق را پیدا کنیم؟

فراموش نکنید که :  شما می‌توانید در طول انجام این آزمایش هر دو تخم‌مرغ را بشکنید. ( خسیس نباشید 🙂 )

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

بد نیست که قبل از رسیدن به جواب قدری درباره ی حالات دیگر مساله فکر کنیم.

[space20]

A chicken's egg

[space20]

فرض کنید که یک تخم مرغ داریم

با این که  معمای اصلی شامل این مورد نمی شود، اما بیایید فرض کنیم که فقط یک تخم مرغ داریم.

همین که تخم مرغ ما شکست، کار تمام است . تخم مرغ دیگری نداریم. پس ما چاره ای نداریم جز این که از طبقه 1 شروع کنیم. اگر نجات پیدا کرد که چه خوب، ادامه می دهیم و می رویم طبقه دو و امتحان میکنیم. بعد طبقه 3 و … همینطور ادامه می دهیم تا بالای برج. به محض این که تخم مرغ شکست، به جواب مسئله خواهیم رسید. به طور مثال اگر تخم مرغ ما در طبقه 64 شکست، پس حتما می تواند از پرتاب از طبقه 63 جان سالم بدر ببرد. هیچ راه حل دیگری برای حالت یک تخم مرغی نیست. البته می توانیم طبقات را یکی در میان بالا برویم ولی در آن صورت اگر تخم مرغ در طبقه 28 شکست ،  حاضر هستید که تضمین کنید تخم مرغ در پرتاب از طبقه 27 سالم می ماند یا نه ؟

در نظر داشته باشید که همیشه ممکن است تخم مرغ تا خود طبقه صدم سالم بماند و این  یک جواب کاملا منطقی و قابل قبول برای مساله ی حاضر است.

tokhme-morgh

[space20]

فرض کنید تعداد کافی تخم مرغ داریم

حال اگر تعداد زیادی تخم مرغ ( یا حداقل به تعداد کافی ) در اختیارمان باشد چه استراتژی ای را انتخاب کنیم؟ در این مورد میخواهیم از ابزار مورد علاقه برنامه نویسان استفاده کنیم : درخت باینری

ابتدا به طبقه 50 میرویم و تخم مرغ را پرتاب میکنیم. چه بشکند یا نه فورا مساله ما نصف میشود. اگر شکست میدانیم جواب ما در نیمه پایینی ( طبقات 1 تا 49 ) است و اگر نشکست در نیمه بالایی ( طبقات 51 الی 100 ). در هر پرتاب جواب هایمان را نصف میکنیم تا به جواب مساله برسیم.

ریاضیدان های حاضر در جمع تماشاچیان سریع فریاد میزنند که جواب لازم برای تعداد پرتاب ها برابر است با   n در صورتی که که 2 به توان n عددی باشد که کمی بزرگتر از تعداد طبقات ساختمان ما باشد .

خب متاسفانه عدد 100 برابر با هیچ کدام از توان های عدد 2 نیست . پس 100 را به سمت بالا گرد میکنیم. تا به نزدیک ترین توان عدد 2 برسیم . یعنی 128 . پس  n برای این مساله خاص ما  7 می شود.

یعنی با استفاده از 7 پرتاب میتوانیم تا ساختمان 128 طبقه را  هم حل کنیم. با 8 پرتاب حتی یک ساختمان 256 طبقه را نیز می توان حل کرد.

طبق جوابی که بدست آوردیم تعداد تخم مرغ های شکسته میتواند متفاوت باشد. ممکن است هر 7 تخم مرغ بشکنند ( اگرجواب طبقه اول باشد در هر پرتاب یک تخم مرغ میشکند ) و ممکن است هیچ تخم مرغی نشکند ( در صورتی که جواب طبقه 100 باشد ، تخم مرغ از هر پرتابی جان سالم بدر میبرد )

 و حالا دوباره دو تا تخم مرغ داریم

خیلی خب ، برمیگردیم به مساله اصلی که دو تخم مرغ بود. همانطور که در بالا مشاهده کردیم در بدترین حالت با استفاده از روش درخت باینری ممکن است تا هفت تخم مرغ فدای این آزمایش بشود. پس حالا که فقط دو تخم مرغ داریم دیگر آن روش به کارمان نمی آید .

تصور زیادی لازم ندارید تا متوجه بشوید روش باینری اصلا مناسب ما نیست. یک مثال برایتان میزنم. ابتدا تخم مرغ را در طبقه 50 پرتاب میکنیم و مشاهده میکنیم میشکند. جواب مساله ما نصف میشود ولی باید از طبقه 1 شروع به پرتاب کنیم. در بدترین حالت اگر جواب ما طبقه 49 باشد ، نیاز به 49 پرتاب دیگر داریم که با پرتاب قبلی میشود 50 پرتاب. فکر کنم که روشی باشد که بتوانیم بهتر از این ها کار کنیم . بد نیست که کمی دلمان باری تخم مرغ های بیچاره بسوزد …

یک روش این است که پرتاب اولمان را در طبقات ضریب 10 انجام بدهیم ( مثلا در طبقه ی 30 بشکند ) و بعد با تخم مرغ بعدی جواب دقیق را از بین پیدا کنیم ( مثلا طبقات 21 تا 29 را با تخم مرغ دوم امتحان کنیم) .

اگر پرتابهایمان را ده طبقه ای انجام دهیم چه میشود؟ ابتدا از طبقه 10 پرتاب میکنیم، اگر نشکست میرویم سراغ طبقه 20، سپس 30 و همینگونه ادامه میدهیم تا تخم مرغ بشکند. به محض اینکه تخم مرغ شکست میدانیم پاسخ باید میان 9 طبقه زیرین باشد. پس 9 طبقه پایین میرویم و طبقات را یکی یکی بالا میاییم تا جواب را پیدا کنیم.

این روش قطعا یک پیشرفت است، ولی بدترین حالت این استراتژی چیست ؟ تصور کنید که طبقات را ده تایی بالا میرویم و اولین تخم مرغ در طبقه 100 میشکند. تا اینجای کار 10 پرتاب انجام دادیم. اکنون میدانیم جواب ما بین طبقات 91 تا 99 است و یکی یکی از آن ها بالا میرویم. در بدترین حالت ممکن است جوا ما طبقه 99 باشد که در این صورت 9 پرتاب برای فهمیدن آن لازم داریم که با پرتاب های قبلی در مجموع میشود 19 پرتاب.

یک پیشرفت عالی . اما …

آیا میتوانیم بهتر عمل کنیم؟

با تفکر در مورد استراتژی 10 طبقه ای به این نتیجه میرسیم با اینکه درست است که در بدترین حالت 19 پرتاب داریم اما ممکن است در بعضی حالات تخم مرغ در همان طبقه 10 بشکند که در این صورت فقط 10 پرتاب به صورت ماکزیمم نیاز داریم. در واقع ما برای همه ی پاسخ های مسئله به تعداد یکسانی پرتاب نیاز نداریم !

با علم به این مورد ، چه می شود اگر به جای طبقه دهم، به طور مثال، از طبقه یازدهم شروع کنیم؟ در صورتی که تخم مرغ شکست باید به جای 9 طبقه ، جوابمان را میان 10 طبقه جستجو کنیم، اما اگر نشکست یک طبقه بیشتر از دور خارج کرده ایم.

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

اگر ابتدا از طبقه 12 شروع کنیم , بعد 24 ، بعد 36 ، بعد 48 ، 60 ، 72 ، 84 و بالاخره در طبقه 96 تخم مرغ بشکند، ما تا به حال 8 پرتاب را انجام دادیم و هنوز یازده طبقه را داریم که باید با تخم مرغ دوم چک کنیم که در بدترین حالت میشود یازده پرتاب و باز هم برمیگردیم به بدترین حالت سناریوی قبلی با 19 پرتاب !!!

ایراد این است که جواب هایی که طبقات پایینی باشند را میتوانیم سریع تر به دست بیاوریم ولی مشکل ما طبقات بالایی است. پس باید با استراتژی ای پیش بریم که اوضاع را برای شرایط مختلف یکسان کند.

در واقع مشکل اصلی روش ده طبقه این است که اوضاع پاسخی که مربوط به طبقات پایین تر باشد به طرز غیرمنصفانه ای با پاسخی که مربوط به طبقات انتهایی باشد فرق می کند . یعنی فرض کنیم که پاسخ ما طبقه ی 25 باشد . ما شروع می کنیم و تخم مرغ اول را آزمایش می کنیم . طبقه 10 … طبقه 20 … طبقه ی 30

و تخم مرغ اول در پرتاب سوم می شکند . حالا تخم مرغ دوم را امتحان می کنیم . 21 … 22 … 23 … 24 … 25 … بله  تخم مرغ دوم هم شکست . یعنی ما برای پاسخی که مربوط به طبقه ی 24 باشد ( سه + پنج پرتاب نیاز داشتیم )

اما حالا پاسخی که مربوط به طبقه ی 80 است را امتحان می کنیم .

تخم مرغ اول 10 … 20 … 30 … 40… 50 … 60 … 70 … 80 … 90 … و تخم مرغ اول ما در پرتاب «هشتم» شکست . که حالا به طرز « ناعادلانه ای » اوضاع را از حالت قبل سخت تر کرد . حالا هر چقدر هم که در پرتاب تخم مرغ دوم شانس بیاوریم باز هم با شرایط وخیم تری روبرو هستیم .

با فرض این که طبقه ی 80 ( یعنی بهترین حالت) پاسخ باشد ، باز هم ما به ( هشت + یک ) پرتاب نیاز داریم که همچنان از حالت قبل بدتر است!!!

کاهش «ماکزیمم پشیمانی»

چیزی که ما نیاز داریم پاسخی است که حداکثر پشیمانی را به حداقل برساند. مثال های بالا به ما نشان داد که باید به سمت پاسخی برویم که برای پاسخ های احتمالی گوناگون راه حلی با عمق یکسان ( تعداد پرتاب تخم مرغ یکسان ) دهد.

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

بیاید با هم کمی ریاضی کار کنیم.

تصور کنید ابتدا تخم مرغ را از طبقه n پرتاب میکنیم. اگر شکست باید n-1 طبقه قبلی را یکی یکی چک کنیم.

اگر نشکست ، به جای آنکه n طبقه بالا برویم ، باید n-1 طبقه بالا برویم. ( چرا؟ چون هنگامی که به حالت تک طبقه سویچ میکنیم یک پرتاب کمتر داریم. ) پس پرتاب بعدی ما میشود طبقه n + ( n – 1 ) به همین صورت اگر تخم مرغ ما نشکست دفعه بعد n-2 طبقه بالا میرویم و به طبقه  (n) + ( n-1 ) + ( n-2 ) و سپس (n ) + ( n-1 ) + ( n-2 ) + ( n-3 ) و الی آخر

همینطور هر دفعه یکی از مبنای بالا رفتنمان کم میکنیم تا این که فقط یک طبقه برای بالا رفتن بماند. حالا جواب معادله زیر را برای 100 طبقه باید بیابیم.

n + (n-1) + (n-2) + (n-3) + (n-4) + … + 1  >=  100

این جمع ، همانطور که اکثر شما به یاد دارید ، ما را به سمت اعداد مثلثاتی هدایت می کند ( که منطقی به نظر می رسد ، زیرا از مبنای بالا رفتن هر بار یک واحد کم می کنیم ) و همچنین فرمول بالا را با ساده سازی میتوانیم اینگونه بنویسیم :

n (n+1) / 2  >=  100

این یک معادله درجه دوم است که ریشه مثبت آن می شود 13.651 ( که باید آن را گرد کنیم و جواب ما می شود 14 ، با فیلم جان مالکویچ سر و کار نداریم که !!! )

244212130235154672271231019010989215241147143

[space20]

راه حل حالت دو تخم مرغی

اکنون ما تمامی اطلاعات لازم برای محاسبه راه حل بهینه برای دو تخم مرغ را داریم.

ابتدا از طبقه 14 شروع میکنیم ، اگر تخم مرغ جان سالم بدر برد 13 طبقه بالا میرویم و به طبقه 27 میرویم. سپس 12 طبقه بالا میرویم و به طبقه 39 میرسیم و همینطور الی آخر …

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

پرتاب ها

بیشترین تعداد پرتاب در این روش، برابر 14 است که حاصل مجموع تعداد پرتاب های مرحله تخم مرغ اول ( طبق مراحل موجود در جدول ) و مرحله تخم مرغ دوم ( تک تک طبقات ) است.

تازه حالت سه تخم مرغی  را هم بلدیم

چرا با دو تخم مرغ مساله را تمام کنیم ؟ راه حل بهینه با وجود سه تخم مرغ چیست ؟ ( جرات دارید بگویید چهار ؟ پنج ؟ )

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

خیلی خب ، محکم سر جایتان بنشینید ، شروع میکنیم …

اینجا دو راه حل داریم:

1-    من ساعت ها و صفحه ها در این باره با انواع و اقسام فرمول ها این بحث را برایتان مفصل شرح دهم.

2-    به جای گم شدن میان انبوهی از محاسبات و استدلالها ، به محاسبات من اعتماد کنید و جدول زیر را مشاهده کنید. شما کلیت موضوع را با توضیح مختصر من متوجه شده اید.

حضار یک صدا درخواست راه حل 2 را دارند. ما نیز اطاعت میکنیم.

و حالتی که کلی تخم مرغ  داریم و کلی طبقه

جدول زیر نشان دهنده بدترین حالت تعداد پرتاب ها ، در راه حل بهینه ، برای ساختمان هایی با تعداد طبقات متفاوت ، از 1 تا 1000 می باشد.

پرتاب ها - Copy

[space20]

دو صد گفته چون یک نمودار نیست

نمودار زیر شامل تمام اطلاعات ما میباشد. محور y نشان دهنده بدترین حالت تعداد پرتاب های راه حل بهینه و محور x نمایانگر تعداد طبقات ساختمان مورد بررسی است ( که از 1 شروع و به هزار ختم می شود ) . برای هر تعداد تخم مرغ یک خط مجزا داریم.

 graphl

خط آبی نمایانگر حالت یک تخم مرغ است که دارای شیب 1 به ازای هر ساختمان است. بدترین حالت تعداد پرتاب برابر است با تعداد طبقات ساختمان.

اضافه کردن تخم مرغ دوم تفاوت عظیمی را رقم میزند. اضافه کردن سومین تخم مرغ تفاوت اندکی را دوباره اضافه می کند.

امروز با هم چقدر املت  ساختیم.

خیالتان راحت  که برای نوشتن این مقاله به هیچ تخم مرغی آسیب نرسیده استFeeling Good

سفید کاغذی
جدیدترین شماره کاغذی سفید را بخرید
شماره ۳: پری‌زدگی
برچسب‌ها:
مشاهده نظرات
  1. وحید

    سلام آق سید محمد شما با یکسری محاسبات پیچیده نجومی میشه به این نتیجه رسید که متولد آذر 69 میشه متولد سال 90 میلادی نه 89
    وسلام علیکم
    و من الله توفیق

    1. سید محمد حکیم

      سه شنبه، ۱۳۶۸/۰۹/۲۸ برابر است با
      Tuesday, December 19, 1989
      الثلاثاء، ٢٠ جمادي الاولي ١٤١٠
      سال ۱۳۶۸ کبیسه نیست. 😉
      منبع: time.ir

  2. ناشناس

    همین که وحید گفت!!!

    1. سید محمد حکیم

      باز ارجاعتون میدم به جواب قبلی

  3. فاطمه

    بالاخره 68 یا 69؟!اگه 29 اذز 68 باشین همزادیم:))

    1. سید محمد حکیم

      انقدر این مقاله عدد داشت که موقع وارد کردن اطلاعات شناسنامه جای 68 وارد شده 69. متاسفانه سعادت نداشتیم. یک روز بزرگترم 😉

  4. م.ر ایدرم

    با این که نمی خوام هندونه زیر بغل هم بزاریم ولی واقعن مقاله ی موندگاری شده

  5. مری

    من تمام مطلب را نخواندم اما در قسمتی که نوشته شده :
    تصور زیادی لازم ندارید تا متوجه بشوید روش باینری اصلا مناسب ما نیست…. در بدترین حالت اگر جواب ما طبقه ۴۹ باشد ، نیاز به ۴۹ پرتاب دیگر داریم که با پرتاب قبلی میشود ۵۰ پرتاب.
    لازم دیدم به عنوان یک مدافع روش باینری عرض کنم که بد ترین حالت در روش باینری بعد از اینکه تخم مرغ در پرتاب از طبقه 50 بشکند و جواب طبقه 49 باشد بدین شکل است:
    طبقه 25 امتحان میشود، تخم مرغ نمیشکند، طبقه 25/2+50 انتخاب میشود ،‌ تخم مرغ نمیشکند، باز هم به سمت نیمه ی بالایی طبقات(با توجه به اینکه تخم مرغ نمیشکند باید اعداد بیشتر امتحان شود نه کمتر!) با مجموع گرفتن و تقسیم بر 2 کردن عدد 50 و عدد منتخب قبلی ، ادامه دارد و بدترین انتخاب ها بدین صورت است: 25 – 36 – 43 – 46 – 48 – 49
    به این ترتیب تعداد دفعات ، همان لگاریتم نزدیک ترین عدد به 50 یعنی 64 در مبنای 2 است ، که جواب آن 6 خواهد بود .
    دوست عزیز ، علاقمند بودن به تکنولوژی دلیل بر توانایی نوشتن مطلب در باره تکنیک های پایه ای به کار گرفته شده در آن که صرفا در دانشگاهها تدریس میشود نمیباشد. البته درخت باینری اولین و پیش پا افتاده ترین تکنیکی است که در رشته کامپیوتر تدریس میشود!
    موفق باشید

    1. م.ر ایدرم

      دوست عزیزم
      البته من این نوشته رو ننوشتم و خود اقا محمد باید جواب شما رو بدن
      ولی متاسفانه این دقت نظر و ریزبینی شما مانع از این نشده که به صورت مساله دقت کنید

      ما دو تا تخم مرغ داریم
      و راه حل شما به شش تخم مرغ نیاز داره
      چون در هرکدام از این پرتاب هایی که شما می گید اگه تخم مرغ بشکنه ما از پاسخ دقیق بی خبر می مونیم

      لطف کنید مقاله رو کامل بخونید تا سوءتفاهمتون بر طرف شه
      این قضیه هم یه مساله ریاضی و به هیچ وجه پیش نیاز مخصوصی نداره

      ممنون از شما

  6. سید محمد حکیم

    اون قسمت از مقاله رو که شما خوندین دقیقا برای فقط و فقط دو عدد تخم مرغه. پس جواب میشه همون 50 پرتاب. ولی روش شما در این مورد خاص جواب میده اما روش صحیحی برای 2 تخم مرغ نیست. چون ما نیمدانیم جواب 49 است. اگر جواب 20 بود در پرتاب از طبقه 25 تخم مرغ شکسته و ما به جواب نمیرسیم. امیدوارم صرف گذراندن اصول اولیه برنامه نویسی در دانشگاه باعث دقت نظر ، صبر ، حوصله و اشتیاق به یادگیری باشد.

    1. مری

      من درباره حل مساله اصلی صحبتی نکردم بنابراین در مورد تعداد تخم مرغ ها بحثی ندارم.
      درباره عدد بدست آمده از روش باینری تذکر دادم.
      باز هم موفق باشید

    2. سید محمد حکیم

      شما اگه یک بار مقاله رو بخونین متوجه اشتباهتون میشین. موفق باشین.

    3. م.ر ایدرم

      مرسی دوست عزیز 😉

  7. امیر

    اصلا چه کاری یه تخم مرغ ها رو به من نیمرو کنم دور همی بزنیم به بدن :دی راحت ترم هست.
    شوخی کردم واقعا مقاله جالبی بود .
    دستت درد نکنه

  8. amir Hossein

    بابا اینا میخوان گولمون بزنه که مامورای شهرداری بیان بگیرنمون

  9. محسن

    این سوال ِ درستی نیست
    التقاطیست از یک سری اصول پسینی و تجربی (شکستن مر تخم مرغ را) و یک سری اصول پیشینی (اگر ریاضی را بتوان این چنین نامید)
    متغییرهای مسئله روشن نیستند
    دقیق تر عرض کنم:
    مبانی تعریف ِ متغییرهای مسئله روشن نیستند.
    اگر متغییر ِ شکستن ِ تخم مرغ رو با مبانی پسینی (و تجربی) تعریف کنیم، جواب این می شود که هر تخم مرغی در ارتفاعی کمتر از یک اشکوب ، بر اثر سقوط خواهد شکست.
    ولی اگر . . . . . .
    باز هم عرض میکنم که به التقاط هایی این چنین در علم ، اعتقادی ندارم؛ و بیشتر آنها را بازی و سرگرمی میدونم

    1. سید محمد حکیم

      مرسی از توجهتون و الته این رو در نظر داشته باشید که بنده اصلا طراح سوال نیستم. این یک معمای کلاسیک هست که برنامه نویسان هم علاقه زیادی بهش دارند.

  10. حسین

    سلام
    خیلی جالب بود
    من قبل از این که جواب رو بخونم به عدد 18 رسیدم بعدش تا سر کاهش «ماکزیمم پشیمانی» خوندم و بیشتر فکر کردم و به جواب صحیح رسیدم (البته بدون فرمول و با محاسبه دستی)
    یک مطلبی هم راجع به استراتژی ده طبقه بگم:
    اگر تخم مرغ در طبقه 90 نشکست دیگر نیازی نیست طبقه 100 را امتحان کنیم بلکه باید طبقه 95 را امتحان کنیم که بعد از آن و در بدترین حالت 4 پرتاب باقی میماند. بنابراین بدترین حالت برای استراتژی 10 طبقه این است که تخم مرغ در طبقه 90 بشکند نه در طبقه 100. که میشود 18 پرتاب نه 19 پرتاب.

    1. M.S.H

      اگه توی طبقه ۸۰ بشکنه چی؟
      حرفت منطقی نیست و جواب نمیده
      )تخم مرغ ها میتوانند هم شکننده و هم سخت باشند )

  11. فرشاد امیری

    سلام جناب حکیم ، با تشکر از مسئله ی بسیار خوب و تحلیل عالیتون … در مورد حالت ۳ تخم مرغ من به جواب ۱۱ رسیدم ( یعنی در بهینه ترین حالت بدترین تعداد پرتاب تخم مرغ ۱۱ می باشد ) اما طبق نمودار عدد ۹ جواب این حالت است ، ممکنه استراتژی حل و یا روش حل رو برای من ایمیل کنید … خیلی ممنون میشم
    با تشکر

    1. مهران نوابی

      سلام فرساد
      چطوری؟؟

  12. saghar

    اصلا مگه مریضید که تخم مرغارو پرت میکنید😐

  13. علی جعفری

    سلام
    جواب ۱۳ حرکت درسته
    کافیه از 13 شروع کنید و در صورت نشکستن تخم مرغ ۱۲ طبقه بریم بالاتر و مرحله بعد ۱۱ طبقه و …
    تست کنید و ببینید ۱۳ کمترین حالته نه ۱۴

نظر خود را بنویسید:

نشانی ایمیل شما منتشر نخواهد شد.

متن نظر:

پیشنهاد کتاب

  • سرد

    نویسنده: النا رهبری
  • ماورا: سلسله جنایت‌های بین کهکشانی

    نویسنده: م.ر. ایدرم
  • مجله سفید ۳: پری‌زدگی

    نویسنده: تحریریه‌ی سفید
  • یفرن دوم

    نویسنده: فرهاد آذرنوا