دهه فجر است و حیف است یک مسابقه کوچک برگزار نکنیم.
توضیح ابتدایی در مورد مسابقه:
ببینید، همانطور که در مطلب «یک روش ساده برای حفظ قرآن» گفته بودم (و از قضا مطلب پربازدیدی هم شده است) یک نماز نشستهی دو رکعتی داریم به نام «وُتیره» (Votayreh) که مستحب است انسان شبها بعد از نماز عشا (به جای نافله عشا) بخواند و در رکعت اول بعد از حمد، ۱۰۰ آیه قرآن بخواند. (تأکید، روی سوره واقعه است و برخی بزرگان هم سوره «ص» را میخواندهاند)
نکته دیگر اینکه در نماز مستحبی برخلاف نماز واجب میشود چندین سوره را بعد از حمد خواند.
این نماز، میتواند بهانه خوبی برای تلاوت خیلی از سورههای قرآن و حتی حفظ آنها باشد. همانطور که در آن مطلب گفتم من (خدا را شکر) سوره واقعه را در ۱۴۷ روز تکرار این نماز و به تازگی، سورههای «انسان» و «قیامة» و «تکویر» را که جمعاً ۱۰۰ آیه میشود حفظ کردهام.
خوب، حالا مسابقه چیست؟
خیلی ساده است: من میخواهم بدانم مجموع آیههای چه سورههایی از قرآن، ۱۰۰ آیه میشود؟
باید یک برنامه نویسید که لیست این سورهها را بیابد. ممکن است ۱ سوره، ۱۰۰ آیه باشد یا دو سوره مجموعاً ۱۰۰ آیه شوند یا ۳ سوره یا ۴ سوره و بیشتر... باید خط به خط لیست شود که مثلاً «سوره x» و «سوره y»
«سوره z» و «سوره w» و «سوره p»
...
اگر میخواهید با زبانهایی مثل PHP کدنویسی کنید، لیست فارسی سورهها و تعداد آیات آنها در این صفحه هست. اگر میخواهید به زبانهایی مثل C (تحت DOS) کدنویسی کنید، لیست انگلیسی سورهها و تعداد آیات آنها در این صفحه است.
راهنمایی: لیست را کامل انتخاب و به Excel کپی کنید تا ستون به ستون از هم جدا شوند و بعد لیست سورهها و تعداد آیات را جدا کنید...
توجه: برنامه باید بدون نیاز به بانک اطلاعاتی باشد. باید یک آرایه دو بعدی حاوی نام و تعداد آیههای سورهها تعریف کنید... (ممکن است بخواهید به جای نام سوره از شماره سوره استفاده کنید که پیشنهاد نمیکنم)
برنده؟
ما بهینهترین الگوریتم را به عنوان برنده انتخاب میکنیم. (بهینهترین بر اساس درس ساختمان داده انتخاب میشود)
جایزه؟
به عنوان جایزه، یکی از مجموعههای آموزشی ما (طراحی وب مقدماتی، طراحی وب پیشرفته، فتوشاپ مقدماتی) به رایگان به برنده داده میشود و یا میتواند ۲۰ هزار تومان بن خرید از فروشگاه درخواست کند.
مهلت؟
تا ظهر ۲۲ بهمن فرصت دارید. در اواخر شب ۲۲ بهمن برنده را اعلام میکنیم.
به کجا ارسال کنیم؟
به ایمیل من:
اگر کسی نتوانست یا شرکت نکرد؟
خودم برنامه را خواهم نوشت :)
کسانی که دم از برنامهنویسی و استعداد و اینجور قضایا میزنند، ببینم چه کار میکنند
موفق باشید؛
حمید رضا نیرومند
ـــــــــــــــــــــــــــ
آپدیت۱: فعلاً یک نفر مسأله را پیادهسازی کرده:
http://cs.niroomand.ir/pro/votayreh/sina
اما خوب، تا مجموع ۳ سوره بیشتر روی سرور سایت ما جواب نمیدهد. مجموع ۴ سوره، آنقدر پردازش سنگینی نیاز دارد که سرور پاسخگو نیست.
من هنوز فرصت نکردهام خودم روی الگوریتم فکر کنم اما فکر میکنم الگوریتم بهتری هم بشود پیدا کرد. (نمیدانم! شاید هم نشود!)
آپدیت: دو نفر دیگر از دوستان نیز در مسابقه شرکت کردهاند. کارهای آنها را ببینید:
این آدرس را در یک مرورگر دیگر ببینید، چون ممکن است مرورگر شما برای مدتی قفل کند:
http://cs.niroomand.ir/pro/votayreh/iman
این یکی ظاهراً بهتر پیادهسازی شده:
http://cs.niroomand.ir/pro/votayreh/zolfaqar
آپدیت: آقای فرهاد مرتضیپور با زبان C# و الگوریتم Back Tracking این برنامه را پیادهسازی کردهاند. دانلود کنید:
http://cs.niroomand.ir/pro/votayreh/votayreh_farhad_mortezapour.zip
فایل ayeh70.exe تا ۷۰ سوره را بررسی میکند و سورههایی که با آنها جمعشان ۱۰۰ آیه میشود را لیست میکند. اما اگر همین ۷۰ را به ۱۱۴ تغییر دهیم، متوجه میشوید که پردازش برنامه فعلاً برای من ۱۵ دقیقه طول کشیده و همچنان دارد لیست میکند! نمیدانم چند دقیقه یا ساعت طول بکشد!
اگر میخواهید شما هم تست کنید، ayeh114.exe را اجرا کنید!!
کدها هم که همراه فایل زیپ هست...