تور لحظه آخری
امروز : دوشنبه ، 17 دی 1403    احادیث و روایات:  پیامبر اکرم (ص):هیچ تهیدستی سخت تر از نادانی و هیچ مالی سودمندتر از عقل نیست.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

اجاره سند در شیراز

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

خرید بلیط هواپیما

بلیط اتوبوس پایانه

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

خرید از چین

خرید از چین

تجهیزات کافی شاپ

خرید سرور اچ پی ماهان شبکه

کاشت ابرو طبیعی و‌ سریع

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

دوره آموزش باریستا

مهاجرت به آلمان

بورس کارتریج پرینتر در تهران

تشریفات روناک

نوار اخطار زرد رنگ

ثبت شرکت فوری

خودارزیابی چیست

فروشگاه مخازن پلی اتیلن

قیمت و خرید تخت برقی پزشکی

کلینیک زخم تهران

خرید بیت کوین

خرید شب یلدا

پرچم تشریفات با کیفیت بالا و قیمت ارزان

کاشت ابرو طبیعی

پرواز از نگاه دکتر ماکان آریا پارسا

پارتیشن شیشه ای اداری

اقامت یونان

خرید غذای گربه

رزرو هتل خارجی

تولید کننده تخت زیبایی

مشاوره تخصصی تولید محتوا

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

تور بالی نوروز 1404

سوالات لو رفته آیین نامه اصلی

کلینیک دندانپزشکی سعادت آباد

پی ال سی زیمنس

دکتر علی پرند فوق تخصص جراحی پلاستیک

تجهیزات و دستگاه های کلینیک زیبایی

تعمیر سرووموتور

تحصیل پزشکی در چین

مجله سلامت و پزشکی

تریلی چادری

 






آمار وبسایت

 تعداد کل بازدیدها : 1851423123




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

الگوريتم جدول سودوكو


واضح آرشیو وب فارسی:سایت ریسک: bahareh65515-09-2008, 03:21 AMسلام دوستان من ميخوام جدول سودوكو رو با جاوا بنويسم يعنی در واقع يه جور بازي موندم كه ميشه الگوريتمي نوشت كه جاوا خودش اين جدول نه در نه رو پر كنه؟ در ضمن كاربر با انتخاب مراحل سخت،متوسط و آسان خونه هاي مناسب جدول بهش نشون داده بشه و طوري اين خونه ها انتخاب بشن كه جدول قابل حل باشه يا اينكه راهی نيست و بايد يه سری جدول های آماده از قبل به برنامه بدم؟ bahareh65515-09-2008, 07:42 PMجدول سودوكو يه جدول 9 در 9 هست كه خودش هم به 9 تا جدول 3 در 3 تقسيم ميشه ما بايد اعداد 1 تا 9 رو طوری توی اين جدول بچينيم كه در سطر ها و ستون های جدول بزرگ( 9در 9 ) تمامی اعداد فقط يكبار ديده بشن.همچنين اعداد 1 تا 9 در مربع های كوچك سه در سه نيز نبايد تكراریباشند. اين جدول رو وقتي طرح كردی به طور مثال 20 تا خونه از 81 خونش رو به كاربر نشون ميدی و ميگی بقيه رو حل كن! البته يه جوری بايد اين 20 تا عدد رو انتخاب كنی كه جدول يقينا قابل حل باشه! اگه ميخوايد بيشتر متوجه شين فردا يه روزنامه ايران بخريد هر روز از اين جدولا داره! خوب توضيح دادم يا كسي متوجه نشد؟لطفاً یه نظری،پیشنهدای راجع به سوالم بدین:41: مرسی hamidreza_buddy16-09-2008, 02:00 PMسلام تو این لینک الگوریتمی برای تولید جداول سودوکوی قابل حل موجود است. به این صورت که ابتدا یک جدول تعداد عناصر پر شد با تعداد خاصی می گیرد و بررسی می کند که آیا قابل حل است یا نه؟ این حلقه را تا آنجا ادامه می دهد که برسد به یک جدول قابل حل: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! البته کدش به سی شارپه ولی کدش رو هم گذاشتن و می تونی مطالعه کنی. برا سختی و آسونیش هم می تونی تعداد خانه های عدد دار را انتخاب کنی. مثلاً واسه سخت 17 تا خونه رو نشون بدی. یه راهی هم که خودم به نظرم می رسه اینه که ابتدا یک جدول کاملاً حل شده تهیه کنیم (به صورت تصادفی) و سپس مثلاً 17 خانه از آن را انتخاب کنیم (باز تصادفی!) . تهیۀ یک جدول سودوکوی کامل در زیر آمده است (به زبان vb): !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! الگوریتم سرراستی هم داره. و سپس از آرایه ای که تولید کرده به تعداد دلخواه تولید می کنی. bahareh65518-09-2008, 02:14 AMسلام من الگوريتم حلش رو پيدا كردم،ولی الگوريتمی برای طراحی خود جدول پيدانكردم! فكر نميكنم روش انتخاب تصادفی، شدنی باشه،يعنی هست ولی خيلی پيچيدس! بايد راه آسونتری هم باشه،درسته؟ _H2_19-09-2008, 02:04 AMسلام اگر شما یک کد قوی و ناب برای حل سودوکو داشته باشید، روش اعداد تصادفی به خوبی عمل میکند و فقط کافی است اعداد در همان اول در تناقض با هم نباشند. تقریباً هر جدول سودوکویی که نیم از آن خالی باشد و تضاد مشهود در ان نباشد قابل حل است، در نتیجه همان اعداد تصادفی که نصف جدول را گرفته باشند، راه خوبی است. درجه سختی و راحتی هم باز میگردد به همان کد حل سودوکو کافیست یک بار کدتان سودوکو را حل کند.... در حل سودوکو یک جاهایی قوانین ساده ریاضی حاکم میشود و عدد خانه ای را مشخص میکند ولی گاهاً با هیچ قانونی نمیتوان عدد را فهمید و بین دو یا بیشتر باید شانسی یا به ترتیب انتخاب کرد، تعداد این گزینه های شانسی و چند انتخابی دقیقاً مشخص کنند میزان سختی و سادگی جدول است و پارامتر بعدی سختی و آسانی درصد خانه های خالی جدول است. bahareh65522-09-2008, 08:38 PMسلام قبل از هر چیز لازم می دونم که تشکر ویژه داشته باشم بابت وقتی که می ذارید و جوابمو میدید:20: راستش روش توليد تصادفي اونطورا هم ساده نيست! بايد سه شرط رو در نظر بگيريم اگر بخوايم توليد جدول تصادفي كنيم 1- عددي كه داريم انتخاب ميكنيم در اون سطر وجود نداشته باشه 2- همچنين در ستون مربوطه وجود نداشته باشه 3- از همه مهمتر وسخت تر اين كه ببينيم در مربع كوچك 3 در 3 وجود نداشته باشه حالا يه خرده رو سومي فكر كنيد... ميبينيد که یه کم سخت شد! با تشکر _H2_23-09-2008, 01:37 AMسلام راستش روش توليد تصادفي اونطورا هم ساده نيست! در مواقعی که واقعاً الگوریتم به بن بست میرسه باید به انتخاب تن داد، و خیلی بدیهی است که انتخاب باید از بین اعداد مجاز باشد و اعدادی که همه میتوانند باشند ولی ما نمیتوانیم گزینه های دیگر را حذف کنیم. یعنی این بحث شما دو جنبه دارد، حل سودوکو و طرح سودوکو. در random و قضیه در زمان حل آنچنان هم تصادفی و شانسی نیست! ولی برای طرح سودوکو شاید بیشتر تصادفی و شانسی باشد ولی در هر دو صورت قائده و قوانین سودوکو باید رعایت شود. مثل خود انسان که بین دو یا سه عدد (نه کل اعداد) در تردید است و مجبور میشود یکی را انتخاب کند و جلو برورد. - از همه مهمتر وسخت تر اين كه ببينيم در مربع كوچك 3 در 3 وجود نداشته باشه حالا يه خرده رو سومي فكر كنيد... اگر به دید یک ماتریس عددی به کل قضیه نگاه کنید، خیلی ساده تر هم میشود و نباید هیچ مشکلی با این مباحث داشته باشید. ===== الگوریتم حل: 1) شما اول نیاز به یک کد ساده دارید که با توجه به خانه های جاری و طبق قوانین سودوکو، سعی کند جواب قطعی برای خانه های خالی به دست آورد، این کد یا میتواند از محتویات جاری جدول و طبق قوانین، مقدار خانه جدید را به دست آورد یا نمیتواند. 2) اگر توانست پس با توجه به اینکه حداقل یک خانه که قبلاً مقدارش مشخص نبوده، الآن مقدار دارد، پس امکان دارد به وسیله همین مقدار جدید، بتوان مقادیر چند خانه دیگر را هم به دست آورد. پس تا زمانی که مقدار قطعی خانه ی جدیدی را میتوان به دست آورد باید در یک حلقه مرحله 1 را مدام تکرار کرد. 3) اگر در نتیجه مرحله یک دیگر به بن بست رسیدیم و مقدار قطعی هیچ خانه ای را نتوانستیم به دست آوریم. حال باید یک تصویر از مقادیر جاری را در یک حافظه پشته مانند ذخیره کنیم و برویم سراغ اولین خانه خالی و اولین عدد مجازی که میتواند در آن قرار گیرد آن عدد را قرار میدهیم و به مرحله 1 باز میگردیم، اگر به جواب رسیدیم که هیچ، وگرنه اگر به جایی رسیدیم که الگوریتم به بن بست رسید، باز میگردیم و از آخرین تصویر را از پشته میخوانیم و عدد بعدی را تست میکنیم. این فرآیند با کمک نوعی پشته میتواند با تودرتودر به راحتی پیاده سازی شود. به عنوان یک نمونه عملی شده با همین الگوریتم میتوانید نگاهی به لینک زیر بی اندازید: h02.ir/Math/Sudoko.aspx الگوریتم طرح: 1) تعداد خانه های پر شده را نسبت به درجه سختی و راحتی تایین میکنیم. 2) در یک حلقه به تعداد خانه ها و بنابر random یک خانه x و y ماتریس (ماتریس بگیم بهتره!) را مشخص میکنیم و عددیRandom را که با قوانین و اعداد قبل از خودش در تناقض نباشد، در خانه مربوطه قرار میدهیم برای random از اعدادی که پشت سر هم نیستند هم (مثلاً 1و 2 و 9) میتوان از آرایه و random ایندکس آرایه استفاده کرد. 3) جهت اطمینان از جواب داشتن یک بار با الگوریتم حل، سودوکو را حل میکنیم. (میتوان میزانی که الگوریتم حل به بن بست رسیده و از بند 3 استفاده کده را هم چک کنیم تا زیاد دور از انتظار سختی و راحتی مطلوب کار بر نباشد.) بحرحال اگر مقادیر مناسب بود که هیچ، وگرنه مجدداً کار را از اول انجام میدهیم. (البته خیلی بهتر میشود اگر توجه کنیم که در random ها سعی کنیم به اعداد استفاده شده در نمونه فعلی اولویت کمتری دهیم.) ===== پیشنهاد میکنم، همواره سعی کنید، خود انسانیتان را جای الگوریتم بگذارید و ببینید اگر شما بودید چه میکردید؟ حتی میتوانید یکبار روی ورق کاغذ کارها را انجام دهید و بعد برگردید و چک کنید و ببینید از چه فرمول و منطقی کار را انجام دادی و ب جواب رسیدید، بعد همان قائده و روش را در الگوریتم تان به زبان برنامه نویسی پیاده سازی کنید. با همین تک اصل ساده اکثر الگوریتم های بسیار پیچیده تر هم قابل حل است. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2490]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن