پنج‌شنبه ۱ آذر ۱۴۰۳ |  عضویت / ورود

مسابقه وُتیره: مسابقه‌ای کوچک با جایزه‌ای کوچک ویژه برنامه‌نویسان (به مناسبت دهه فجر)


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

توضیح ابتدایی در مورد مسابقه:

ببینید، همانطور که در مطلب «یک روش ساده برای حفظ قرآن» گفته بودم (و از قضا مطلب پربازدیدی هم شده است) یک نماز نشسته‌ی دو رکعتی داریم به نام «وُتیره» (Votayreh) که مستحب است انسان شب‌ها بعد از نماز عشا (به جای نافله عشا) بخواند و در رکعت اول بعد از حمد، ۱۰۰ آیه قرآن بخواند. (تأکید، روی سوره واقعه است و برخی بزرگان هم سوره «ص» را می‌خوانده‌اند)

https://img.aftab.cc/news/91/voteyreh.jpg

نکته دیگر اینکه در نماز مستحبی برخلاف نماز واجب می‌شود چندین سوره را بعد از حمد خواند.

این نماز، می‌تواند بهانه خوبی برای تلاوت خیلی از سوره‌های قرآن و حتی حفظ آن‌ها باشد. همانطور که در آن مطلب گفتم من (خدا را شکر) سوره واقعه را در ۱۴۷ روز تکرار این نماز و به تازگی، سوره‌های «انسان» و «قیامة» و «تکویر» را که جمعاً ۱۰۰ آیه می‌شود حفظ کرده‌ام.

خوب، حالا مسابقه چیست؟

خیلی ساده است: من می‌خواهم بدانم مجموع آیه‌های چه سوره‌هایی از قرآن، ۱۰۰ آیه می‌شود؟

باید یک برنامه نویسید که لیست این سوره‌ها را بیابد. ممکن است ۱ سوره، ۱۰۰ آیه باشد یا دو سوره مجموعاً ۱۰۰ آیه شوند یا ۳ سوره یا ۴ سوره و بیشتر... باید خط به خط لیست شود که مثلاً «سوره x» و «سوره y»
«سوره z» و «سوره w» و «سوره p»
...

اگر می‌خواهید با زبان‌هایی مثل PHP کدنویسی کنید، لیست فارسی سوره‌ها و تعداد آیات آن‌ها در این صفحه هست. اگر می‌خواهید به زبان‌هایی مثل C (تحت DOS) کدنویسی کنید، لیست انگلیسی سوره‌ها و تعداد آیات آن‌ها در این صفحه است.

راهنمایی: لیست را کامل انتخاب و به Excel کپی کنید تا ستون به ستون از هم جدا شوند و بعد لیست سوره‌ها و تعداد آیات را جدا کنید...

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

برنده؟

ما بهینه‌ترین الگوریتم را به عنوان برنده انتخاب می‌کنیم. (بهینه‌ترین بر اساس درس ساختمان داده انتخاب می‌شود)

جایزه؟

به عنوان جایزه، یکی از مجموعه‌های آموزشی ما (طراحی وب مقدماتی، طراحی وب پیشرفته، فتوشاپ مقدماتی) به رایگان به برنده داده می‌شود و یا می‌تواند ۲۰ هزار تومان بن خرید از فروشگاه درخواست کند.

مهلت؟

تا ظهر ۲۲ بهمن فرصت دارید. در اواخر شب ۲۲ بهمن برنده را اعلام می‌کنیم.

به کجا ارسال کنیم؟

به ایمیل من: http://niroomand.ir/img/email.png

اگر کسی نتوانست یا شرکت نکرد؟

خودم برنامه را خواهم نوشت :)

 

کسانی که دم از برنامه‌نویسی و استعداد و اینجور قضایا می‌زنند، ببینم چه کار می‌کنند http://aftab.cc/modules/Forums/images/smiles/icon_wink.gif

موفق باشید؛
حمید رضا نیرومند

ـــــــــــــــــــــــــــ

آپدیت۱: فعلاً یک نفر مسأله را پیاده‌سازی کرده:

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 را اجرا کنید!!
کدها هم که همراه فایل زیپ هست...


[ارسال شده در مورخه : پنجشنبه، 17 بهمن، 1392 توسط Hamid]
[ #برنامه‌‌نویسی]



بازدیدها از این مطلب: 6091 بار   امتیاز متوسط : 0  تعداد آراء: 0   امتیاز دهید:

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 6 با 6 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

[بدون موضوع]                توسط msdn در مورخه : جمعه، 18 بهمن، 1392(لینک نظر)
سلام

با C++ هم میشه نوشت؟

فکر میکنم بهترین روش از نظر order با الگوریتم brute force تفاوت چندانی نداشته باشه .

از اونجایی که توی حساب کردن order برنامه ها ضرایب خط می خورن (اینو توی کتاب CLRS خوندم) حدس میزنم order هر دوتا شون یکی بشه.این طور نیست؟؟؟


[ ارسال جوابیه ]

    Re: (امتیاز : 1)
    توسط Hamid در مورخه : جمعه، 18 بهمن، 1392
    سلام.

    با هر زبانی می‌تونید بنویسید...

    حالا فعلاً پیاده‌سازی کنید، بعد در مورد پیچیدگی‌ش صحبت می‌کنیم. اما بعید نیست همون پیچیدگی brute force یعنی دو به توان n رو به دست بیاره...


    [ ارسال جوابیه ]


ساجده (امتیاز : 0)(لینک نظر)
توسط ساجده در مورخه : جمعه، 18 بهمن، 1392
سلام

بسيار عالي

واقعا ايده ي جالبي است.ان شاالله استقبال زيادي بشه

فرهنگ سازي +پرورش ايده ها

احسنت


[ ارسال جوابیه ]


[بدون موضوع]                توسط mrsmhn در مورخه : جمعه، 18 بهمن، 1392(لینک نظر)
سلام علیکم

یک نکته اخلاقی:سوره سجده واجب بعضی از علما اجازه نمیدن خواندن در نماز مستحبی رو نمیدن!

اونا رو چه کرد؟ :D

یاعلی مددی


[ ارسال جوابیه ]


ایمان                توسط ایمان در مورخه : یکشنبه، 20 بهمن، 1392(لینک نظر)
لطفاً خوتون آخر سر انجام بدین تا ببینیم چطور باید این کار رو به روش صحیح انجام داد،

راستی من یه اصلاحیه از برنامم فرستاد، به دستتون رسید


[ ارسال جوابیه ]

    Re: ایمان (امتیاز : 1)
    توسط Hamid در مورخه : یکشنبه، 20 بهمن، 1392
    چشم، اگر فرصت شد، خودم هم شرکت می‌کنم.

    اصلاحیه هم الان اعمال شد و کش غیرفعال شد چون بعد از اجرای چند نفر، حجم فایل به شدت افزایش پیدا کرده بود...


    [ ارسال جوابیه ]


[بدون موضوع] (امتیاز : 0)(لینک نظر)
توسط در مورخه : دوشنبه، 21 بهمن، 1392
سلام



توضیحات برنامه ارسال شد


[ ارسال جوابیه ]