راه دوم به این زیادی ها که میگی نیست ، تعداد سطرهای ممکن 35 تا بیشتر نیست . (35 = انتخاب 3 از 7) و 35 به توان 7 خیلی کمتر از 7! به توان 7 هست .
2014-11-10 11:29:46 -0600 سماق دواولین باره که به کاهو میای؟ راهنمای سایت رو حتما بخون!
آزمون عملی (مرحله سوم) المپیاد کامپیوتر چطور برگزار میشه و برای آمادگیش چیکار کنیم؟
سوال ۱ آزمون مرحله سوم دوره ۲۳
سوال ۲ آزمون مرحله سوم دوره ۲۳
سوال ۳ آزمون مرحله سوم دوره ۲۳
سوال ۴ آزمون مرحله سوم دوره ۲۳
استفاده از کد در آزمون مرحله سوم
در این قسمت میتونی به یک پرسش پاسخ بدی. اگه میخوای در مورد پرسش بحث و اظهار نظر کنی از قسمت «ثبت نظر» استفاده کن.
پاسخت رو دقیق و کامل بنویس، از عکس استفاده کن و اگه لازمه به منابع (کتاب یا سایت) ارجاع بده.
اگه پرسش یا پاسخها مفید هستند حتما بهشون رای بده تا پرسشها و پاسخهای خوب مشخص بشن.
توی قسمت پیشنمایش میتونی ببینی متنی که نوشتی چجوری روی سایت دیده میشه.
خیلی مهم: برای اینکه به خط بعد بری باید دوتا Enter بزنی.
میتونی از تگهای معمولی و سادهی html هم استفاده کنی.
با دکمههایی که بالای ویرایشگر قرار دارند کلی کار میشه کرد. از عکسگذاشتن بگیر تا لیست شمارهدار. حتما امتحانشون کن.
برای نوشتن علائم ریاضی میتونی از Mathjax استفاده کنی.
راهنمای Mathjax رو از سایت
math.stackexchange
بخون.
برای نوشتن عبارت ریاضی وسط جمله، اون عبارت رو بین دوتا $ قرار بده.
برای نوشتن عبارت ریاضی تو یه خط جدید اون رو بین دوتا $$ قرار بده.
میخوایم تعداد جدول های دودویی 7*7 که مجموع اعداد هر ردیف و هر ستون دقیقا برابر 3 باشد رو پیدا کنیم.اگه بخواییم همه حالت ها رو چک کنیم 2 به توان 49 میشه که زیاده.یه راه دیگه هم اینه که همه جایگشت های هر سطر با 3 رقم 1 رو چک کنیم ، که !7 به توان 7 میشه که بازم خیلی زیاده.کسی راهی سراغ داره؟؟(میدونم با پسگرد حل میشه اما نمیدونم چطوری)
سوال مال مرحله 3 دوره بیست و سومه.
راه دوم به این زیادی ها که میگی نیست ، تعداد سطرهای ممکن 35 تا بیشتر نیست . (35 = انتخاب 3 از 7) و 35 به توان 7 خیلی کمتر از 7! به توان 7 هست .
2014-11-10 11:29:46 -0600 سماق دوبرا اینکه back track بزنیم برای هر ردیف حالت هایی که میشود در سه تا از خانه ها ۱ قرار داد به صورتی که جمع هیچ ستونی بیش تر از ۳ نشود را چک میکنیم و اگه شد قرار میدیم و به صورت بازگشتی همین کارو برا ردیف های پایین انجام میدیم تا وقتی همه ردیف ها پر شه بعد اگر پر شد یکی به جواب ها یکی اضافه میکنیم. حدودا یک دقیقه طول میکشه تا جواب بده. یه کم هم میشه بهینه کرد که سریع تر جواب بده.
چند تا راه: 1-راه خودت که زمانش حدودا 95000 دقیقه 2-باید سه تا از هر سطر رو پر کنیم بعد چک کنیم جواب در سته یا نه که میشه : $ \binom{7}{3} ^7 $ که حدودا میشه $64*10^9$ که میشه حدودا ده دقیقه 3-بازگشتی با الگوریتم ژنتیکی: این که یه تا بع بازگشتی بنویسی که بار اول سه تا چیز بزاره تو 7 جا سطر بعد هر جا که میتونه بذاره هر وقت هم ستون پر بود نذاره که اگه هر وقت درست شد یه جواب درست داریم که میتونیم حسابش کنیم این میشه حدودا 1.5 دقیقه
من پسگرد را با حذف حالتهایی که به جواب نمیرسند نوشتم سریعتر بود. (اگر درست انجامش داده باشم.) جمع تعداد ۱هایی که تا حالا گذاشتم را نگه داشتم و بعد گفتم اگر بقیهی خانههایی که چک نکردم همه ۱ باشند هیچ وقت مجموعش ۲۱ میشود یا نه. که البته این شرط خیلی زمانش را کم نکرد در نتیجه یک شرط دیگه گذاشتم که اگر همهی ستونهای باقیمانده هر کدام ۳ تا یک داشته باشند آیا جمع فعلی میتواند به ۲۱ برسد یا نه. با این شرط دومی زمانش کم شد. برنامه
منم دیپی زدم دیپی ۱۲ بعدی !!! فقط اولش سطر اول و سطر دوم رو دستی پر کردم . آخرش حالت ها رو ضرب کردم
یکی از فانتزیام همیشه این بوده که چنین حرکت هایی بتونم انجام بدم اما متاسفانه موقعیتش پیش نیومده!!موفق باشید!!
2016-07-06 03:11:40 -0600 منم دوبارهاین راه حل هم جواب میده که ستون به ستون همه حالات مختلف ردیف ها رو توی ست ذخیره کنی. کد: http://paste.ubuntu.com/18882972/
Runtime: 0.035s