PDA

View Full Version : سرگرمی



HRezaei
جمعه 29 بهمن 1389, 21:36 عصر
عرض سلام و خسته نباشید خدمت دوستان
الگوریتم های تبدیل اعداد به حروف رو حتما اکثر دوستان دیده اند
من یه برنامه ی php ساده برای این کار آماده کردم که کار جدیدی نیست اما اگه بتونیم طوری توسعه اش بدیم که بتونه اعداد رو رند بخونه، الگوریتم جالبی میشه.
مثلا عدد 9383004050
رو به جای اینکه تبدیل کنه به :
نه ميليارد و سيصد و هشتاد و سه ميليون و چهار هزار و پنجاه
اینجوری تبدیل کنه:
نهصد و سی و هشت، سیصد، چهل، پنجاه
یا مثلا 1145464737
رو بخونه(!): یازده،چهل و پنج، چهل و شش، چهل و هفت، سی و هفت
البته بماند که خود ما انسان ها هم برای خوندن این اعداد با هم اختلاف داریم و ممکنه هرکسی یه جور بخونه، اما حالا با یه کم ارفاق، از الگوریتم های کامپیوتری قبول می کنیم!
ایده ای که من فعلا واسه این کار دارم اینه که به طور تصادفی عدد رو چند قسمت کنیم و هرقسمت رو جدا تبدیل کنیم. و خروجی ها رو با کاراکتر "،" به هم متصل کنیم.
این کار رو چندین بار(با اعداد تصادفی متفاوت) تکرار می کنیم، و جواب ها رو با یه معیار خاصی با هم مقایسه می کنیم. مثلا هرچه یه جواب زیر رشته ی " و " رو کمتر داشته باشه بهتره. یا یه معیار دیگه می تونه طول رشته حروف خروجی باشه.
اما قبل از اینکه پیادش کنم میخواستم ببینم دوستان ایده ی بهتری ندارند؟ لزوما هم نیاز نیست بهتر باشه. ایده ای اگه دارید، لطف کنید مطرحش کنید تا در موردش بحث بشه و به تکامل(!) برسه.
کار مشابهی اگه در این مورد انجام شده، لطفا آدرسش رو بزارید.
با تشکر

HRezaei
یک شنبه 01 اسفند 1389, 00:38 صبح
بعد از استقبال چشمگیری که از این موضوع شد(!) سعی کردم ایده ی مذکور(موسوم به الگوریتم تپه نوردی) رو پیاده سازی کنم.
کارهای اولیه اش انجام شده(هرچند ناکارآ). فقط کافیه چندتا معیار خوب طراحی کنیم که از بین راه حل های موجود، رند ترین عدد رو انتخاب کنه.

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

UnnamE
یک شنبه 01 اسفند 1389, 17:48 عصر
دوست من باس بدوني اينجا فقط جاي سوال كردن ـة!
اگه يكم بحث فراتر از نصب php روي سيستم باشه ديگه از حوصله دوستان خارج ميشه!!!
چه بسا كه بحث بالاي سيكل باشه!!!!