با سلام مجدد به دوستان عزیزم :»
استیو عزیز کاملا درست گفت ولی دنبال راهی باشید که هم هزینه ی کم و هم سرعت بالا داشته باشه
البته اگه باشه که به نظر من میشه راهش رو پیدا کرد با یکم انداز برانداز کردن که بدون این همه حلقه عدد رو تشخیص داد
با تشکر
با سلام مجدد به دوستان عزیزم :»
استیو عزیز کاملا درست گفت ولی دنبال راهی باشید که هم هزینه ی کم و هم سرعت بالا داشته باشه
البته اگه باشه که به نظر من میشه راهش رو پیدا کرد با یکم انداز برانداز کردن که بدون این همه حلقه عدد رو تشخیص داد
با تشکر
ارام تر سکوت کن : ... !
صدای بی تفاوتی هایت ازارم می دهدکلاس های برنامه نویسی ( اموزش )
کلاس های برنامه نویسی سایت ( اطلاعیه )
نه درست نیست
مثلا 49
به 2و3و5 بخشپذیر نیست اول هم نیست
این بازه رو باید بزرگتر کنید
یا مثلا 77 هم همینطور
فرمول پیدا کردن اعداد اول یک فرمول یگانه در ریاضیات هست که چند سال پیش یه داشنمند ایرانی تو امریکا پیدا کرد و به اسم خودش ثبت کرد
واقعا هم پیچیده هست
و به این راحتی قابل پیدا کردن نیستن اعداد اول
محمدرضا هاشمی پرفسور دانشگاه ؛ با مدرک دکترای تخصصی در رشته ی مهندسی ارتباطات برق از دانشگاه Boston آمریکا و دکترای ریاضی از اسپانیا ؛
پس از 20 سال تحقیق ، موفق به کشف فرمول اعداد اول شد ، و این مساله ی ریاضی که به مدت 2300 سال حل نشده باقی مونده بود رو حل کرد ؛
از هادی اقا بخاطر این فرمولی که اینجا گذاشتن واقعا تشکر می کنم
پس دیدید حل شد مشکل حلقه ها ؟؟؟
ارام تر سکوت کن : ... !
صدای بی تفاوتی هایت ازارم می دهدکلاس های برنامه نویسی ( اموزش )
کلاس های برنامه نویسی سایت ( اطلاعیه )
دوست عزیز قبلا هم کسانی به فرمول هایی رسیده بودند مثلا مرسن به فرمولی برای محاسبه اعداد اول رسیده بود. ولی مسئله اینه که این فرمول ها برای همه اعداد اول نیست. یعنی بخشی از اون ها رو تولید می کنه. تازه این فرمولی هم که نوشتی غلطه. احتمالا اشتباهی کپی کردی. چون اولش در یه دو ضرب میشه و در نتیجه بر دو بخش پذیره. پس اول نیست.س از 20 سال تحقیق ، موفق به کشف فرمول اعداد اول شد ، و این مساله ی ریاضی که به مدت 2300 سال حل نشده باقی مونده بود رو حل کرد ؛
ولی دوستان مثل این که تاپیک آخر بنده رو نخوندن. به نظرم بهترین راه همونه که اونجا گفتم. ما با الگوریتم مشکل نداریم. بیاید سعی کنیم الگوریتم رو پیاده کنیم.
تو به آفتاب مانی به کمال حسن و طلعت / که نظر نمی تواند که ببیندت که ماهی
اللهم عجل لولیک الفرج
-------------------------
اگه این تابع معکوس پذیر باشه مشکل حل میشه، اگه نه ، برای کار ما مناسب نیست؛ چون قراره عددی دریافت بشه ، درصورت اول بودن اعلام بشه
اما این فرمول یا هر فرمول دیگه ای مثل این(چون همون طور که جناب mpkahkeshan گفتند حداقلش اینه که مضرب 2 هست)، اعداد اول را با دادن m های مختلف تولید میکنه.
اگه بخواهیم مسئله را با این فرمول حل کنیم، باید معکوس بشه.
باید ببینیم به ازای H(m)a ورودی آیا میتونیم m ای پیدا کنیم؟
اگه پیدا شد اوله.
اگه واقعا فرمولی باشه که اگه همه اعداد را تولید نکنه اما اکثرش را ایجاد کنه و اگه معکوس پذیر باشه، مشکل را کاملا حل کردیم.
هزینه هم کم شده. به data base هم فشار کم تری میاد.
چون میشه اون بخشی که فرموله تولید نمیکنه را فقط در data base ذخیره کرد.
ولی مشکل میشه دوتا. چون باید بررسی کرد که فرمول اون عدد رو تولید می کنه یا نه؟ همونطور که گفتم این فرمول غلطه. اصلا مضرب دو هست اول نیست.چون میشه اون بخشی که فرموله تولید نمیکنه را فقط در data base ذخیره کرد.
تو به آفتاب مانی به کمال حسن و طلعت / که نظر نمی تواند که ببیندت که ماهی
اللهم عجل لولیک الفرج
نه این مسئله مشکل نیست!
خب بررسی اون فرمول هزینه اش O(1)c است. یعنی میشه گفت هیچی!
درسته دو تا مسئله چک میشه اما درمجموع هزینه کم تره.
میشه این طور نوشت:
اگه با دادن عدد به فرمول ، m را تولید کرد بگه اوله.
اگه تولید نکرد به data base مراجعه کنه.
الان دیگه فقط هزینه برای پیدا کردن عدد در دیتا بیس داریم(اونم نه همه اعداد).
درمورد فرمول هم گفتم، اگه وجود داشته باشه. اگه نباشه که هیچ!
نه این مسئله مشکل نیست!
خب بررسی اون فرمول هزینه اش O(1)c است. یعنی میشه گفت هیچی!
درسته دو تا مسئله چک میشه اما درمجموع هزینه کم تره.
میشه این طور نوشت:
اگه با دادن عدد به فرمول ، m را تولید کرد بگه اوله.
اگه تولید نکرد به data base مراجعه کنه.
الان دیگه فقط هزینه برای پیدا کردن عدد در دیتا بیس داریم(اونم نه همه اعداد).
درمورد فرمول هم گفتم، اگه وجود داشته باشه. اگه نباشه که هیچ!
حالا بریم سر اصل مطلب:
مشکل اینجاست که برای بررسی بخش پذیری عدد مورد نظر به اعداد داخل دیتابیس، باید اون ها رو تقسیم کنیم در حالی که حافظه کامپیوتر حداکثر 30 - 40 رقم می گیره. پس باید خودمون یه کلاس تعریف کنیم تا بتونه یک رشته رو بگیره روش ضرب و تقسیم انجام بده و بعد اعلام کنه که اوله یا نه. مشکل اصلی من این کلاسه که خیلی بزرگ و حجیم و سخت میشه. لطفا در این مورد نظر بدید دوستان
تو به آفتاب مانی به کمال حسن و طلعت / که نظر نمی تواند که ببیندت که ماهی
اللهم عجل لولیک الفرج
خب من لینک مطلب رو هم گذاشتم شما میتونید اونو ببینید اگر دقت کنید
از طرفی دوستان پیدا کردن اعداد اول به این راحتی نیست
نمیشه اینجوری تعریف کرد که مثلا بر 2 و 3 و 5 و 7و .....بخشپذیر نباشه بگیم اوله
چون اینجوری یه مجموعه n عضوی خواهیم داشت
کار وقتی سخت میشه که اعداد اول در هم ضرب میشن
مثلا 7 * 11 اونوقت شما برای اینکه بفهمید 77 عدد اولی هست یا نه باید ببینید بر عدد اولی بخشپذیر هست یا نه
پس به این راحتی نیست و حتما باید از یه فرمولی پیروی کنید
این فرمول رو به یه سرچ ساده هم میتونید پیدا کنید
دوست عزیز لطفا بحث رو از ابتدا بخونید تا دوباره کاری صورت نگیره در این مورد قبلا در این مورد بحث شده!!!
تو به آفتاب مانی به کمال حسن و طلعت / که نظر نمی تواند که ببیندت که ماهی
اللهم عجل لولیک الفرج
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)
علاقه مندی ها (Bookmarks)