ورود

View Full Version : تولید مربع جادوئی n=100



havakili
دوشنبه 26 مرداد 1394, 12:01 عصر
با سلام خدمت دوستان گرامی
من یه مشورت خیلی فنی لازم دارم واقعا کمکم کنید
ما قصد داریم یه سری موارد خاص رو در مربع جادوئی چک کنیم
حالا واسمون مهم نیست تا الان دیگران چه نتایجی از مربع جادوئی بدست آوردن
ما باید خودمون به این نتایج دست پیدا کنیم
خوب حالا ما برای یک مربع جادوئی N*N که در این مربع جادوئی N*N! حالت باید جایگذاری بشه تا ما هم
بتونیم یکی یکی این موارد رو که با شرایط ما متناسب هستند رو استخراج کنیم
ما قصد داریم این کار رو تا حد امکان برای N=100 بدست بیاریم (یعنی 10000 فاکتوریل) هر چند از لحاظ امکاناتی این کار محال هست
ولی ما میخوایم اگه شما بزرگواران ما رو راهنمائی و کمک کنید تا حد امکان پیش بریم و حداقل باید از n=4 شروع کنیم تا هر جای که تونستیم پیش بریم
من نظر خودم این هستش که این کار باید به 3 مرحله کلی تقسیم بشه
1 - تولید حالات اعداد برای جایگذاری در مربع
2 - چک کردن اینکه آیا مربع تولیدی جادوئی هست یا نه
3- بررسی شرایط درخواستی ما
خوب در مرحله یک 1 که واقعا طولانی هست من نظرم این هست که هر بازه از اعداد مثلا برای N=4 که تعداد حالات برابر با 16! هست یه چیزی حدود=20922789888000
این تعداد حالت جایگشت داریم خوب این تعداد جایگشت به ازای هر عدد برابر است =1307674368000
باید یه برنامه ای داشته باشیم که بتونه برای هر عدد جداگانه این تعداد حالات رو بدست بیاره
ما هم بتونیم برنامه رو روی مثلا 100 سیستم بذاریم تا کارشو انجام بده
و هر چه بتونیم این بازه ها رو کوچکتر کنیم به نفعمون هست
و سپس حالت های تولید شده رو به ازای هر نمونه از برنامه داخل فایل خودش ذخیره کنیم
بعد به همین صورت شرایط چک کردن مراحل دو و سه رو انجام بدیم
ضمنا ما مرحله یک رو فقط یک برای مثلا N=50 انجام میدم و ذخیره میکنیم بعد برای تمامی N های کوچکتر از اون فقط
چک کردن های مرحله 2 و3 رو بر اساس N انجام بدیم
از قول معروف که میگه "چون که صد آمد نود هم پیش ماست"
این تنها چیزی هست که من به ذهنم میرسید
حالا شما بزرگوارن عنایتی کنید
تا مسئله بهتر و بهینه تر حل بشه
با تشکر

havakili
سه شنبه 27 مرداد 1394, 08:22 صبح
سلام به همگی
یعنی یه نفر پیدا نمیشه جواب ما رو بده که باید چیکار کنیم
بابا این همه اساتید و بزرگوارن اینجا هستند
یه اظهار نظری یه پیشنهادی بدید خوب

bobesfanji
سه شنبه 27 مرداد 1394, 08:43 صبح
مساله ای که هنوز ریاضی دانان بزرگ حل نکردند رو انتظار داری کسی اینجا حل کنه!

golbafan
سه شنبه 27 مرداد 1394, 10:04 صبح
سلام

برای مربع جادویی در ابعاد 100*100 تعداد حالات ممکن میشه: 2.84625968 در 10 به توان 35659
فکر میکنی بشه حتی این رقم رو شمرد؟

شما تمام کامپیوتر های دنیا رو کنار هم بزار و فقط بخواه تا این عدد رو شروع کنن به شمردن
یک حساب سر انگشتی بکنی میفهمی شدنی نیست

golbafan
سه شنبه 27 مرداد 1394, 10:19 صبح
تا سال 2016 تعداد کامپیوترهای موجود در جهان (همه نوع کامپیوتر) به 2 میلیارد کامپیوتر خواهد رسید

حالا فرض کن تمام اینها پردازنده corei7 داشته باشن (که ندارن)

فرض کن حالا که هر کامپیوتر در هر ثانیه 1000 تا مربع جادویی 100*100 رو حساب کنه
فرض کن قرار نیست این کامپیوتر ها تکراری بودن رو چک کنن و کلا فرض کن هیچ مورد تکراری برای هیچ کدوم رخ نده

حالا حساب میکنیم:
هر سال چند ثانیه هست؟ 31,557,600
چند تا مربه در ثانیه؟ 1000
چند کامپیوتر؟ 2.000.000.000

حالا مساله این هست: حسن میخواهد تمام حالات مربع جادویی 100*100 را حساب کند. حساب کنید چند قرن طول میکشه؟


31,557,600*1000*2.000.000.000 = 631,152,000,000,000,000 تعداد در سال

Ans: 2.846*10^35659 / 6.31152*10^23 = 4*10^35635

چند سال شد؟
تقریبا 4 ضرب در 10 به توان 35635 سال

چند سال است کره زمین خلق شده؟ 5 میلیارد سال...