سلام
ماشین حساب ویندوز از یک حدی بیشتر 2 به توان مثلا 32000 را انجام نمی ده و می زنه سرریز
علتش چیه ؟ من با اسمبلی یک برنامه نوشتم که 2 به توان 1000000 هم محاسبه می کنه می خواستم بدونم علت خاصی داره؟؟؟
سلام
ماشین حساب ویندوز از یک حدی بیشتر 2 به توان مثلا 32000 را انجام نمی ده و می زنه سرریز
علتش چیه ؟ من با اسمبلی یک برنامه نوشتم که 2 به توان 1000000 هم محاسبه می کنه می خواستم بدونم علت خاصی داره؟؟؟
http://www.mersenne.org/
این سایت رو دیدم که 2 به توان 57 میلیون رو حساب کرده به عنوان آخرین عدد اول پیدا شده
این برنامه ای که نوشتم هیچ محدودیتی نداره و به الحاظ منطقی برای عدد 2 به توان 100 میلیون هم می تونه محاسبه کنه با یک کامپیوتر معمولی فقط باید چند روز روشن باشه
1-(2^57,885,161 )طبق قانون مرسن عدد اول = 2 به توان پی -1 در شرایطی که پی هم اول باشه مثلا 2 به توان 5 -1 می شه 31 که اول 2 به توان 7 -1 میشه 127 که اول
الگوریتم شما در چقدر زمان عدد 2 به توان 1000.000 رو محاسبه می کنه؟
شما اگر بیتی به داستان نگاه کنی عدد 1 با یک میلیون صفر جلوش می شه همون محاسبه.
اما جایزه اش برای تعیین اول بودنش هست. باید اثبات کنی این عدد اول هست.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
پایگاه داده، تیونینگ، طراحی و پیاده سازی ..
منظور من همین عدد نیست.
کلی دارم می گم.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
پایگاه داده، تیونینگ، طراحی و پیاده سازی ..
عزیز من می گم اون عدد رو من الکی برای مثال گفتم نه برای این که بررسیش کنیم.قانون مرسن کلی هست
منظور من این هست که وقتی می گن عدد مرسنی پیدا شده که فلان تا رقم داره کار اصلی پیدا کردن اون عدد نیست بلکه تست صحت اول بودنش هست که پروسه رو طولانی می کنه.
قانون هم وقتی اسمش قانونه اگر شرایط به صراحت ذکر نشه در همه شرایط برقراره و کلی هست.
در خصوص اون دوستمون که گفتن الگوریتمی دارن که فلان..، در اون خصوص گفتم که محاسبه ی عددهای بزرگ چندان مهم نیست، مهم تست درستی اول بودن اونهاست.
همین!
قانون مرسن رو هم بلدم. ممنون.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
پایگاه داده، تیونینگ، طراحی و پیاده سازی ..
قانون مرسن اینی که میگید نیست
چون به ازای این اعداد عدد اول تولید نمیکنه:
11 2047 به ازای یازده به دو هزار و چهل و هفت میرسیم که اول نیست و به ازای این اعدا:
23 8388607
29 536870911
37 137438953471
41 2199023255551
43 8796093022207
47 140737488355327
53 9007199254740991
59 576460752303423487
67 147573952589676412927
71 2361183241434822606847
73 9444732965739290427391
79 604462909807314587353087
83 9671406556917033397649407
و به ازای خیلی اعداد دیگه هم همینطوره
قانون مرسن یعنی اینکه:
اگر دو به توان p ، منهای یک اول باشد ، نتیجه میگیریم p اول است
if 2^p - 1 is prime then p is prime
بزرگترین عدد اول نداریم
چون میشه اثبات کرد که هر عدد اولی پیدا کنیم عدد اولی بزرگتر از اون هم هست:
فرض میکنیم P بزرگترین عدد اول باشد
اگر اعداد زیر تمام اعداد اول کوچکتر از P باشند
p1 p2 p3 ... pn
میتوان نتیجه گرفت که عدد زیر که بزرگتر از P هست نیز اول است:
p1*p2*p3*...*pn*P+1
پس نتیجه میگیریم دنباله اعداد اول بزرگترین عضو ندارد
پس اگر هر عدد اولی را انتخاب کنیم میتوان تعداد نامحدود عدد اول بزرگتر از اون عدد رو پیدا کرد