jlover
چهارشنبه 07 بهمن 1388, 23:04 عصر
پکیج محاسبه ی اول بودن یک عدد هست که در سه کلاس که سه الگوریتم متفاوت دارند + یک کلاس تست طبقه بندی شده در ذیل کلاس انتزاعی Prime
البته الگوریتم ها خیلی واضح و ابتدایی هستند(باید کلاس پیاده ساری کننده ی الگوریتم بازگشتی هم حتما اضافه بشه)
هدف من بیش از خود مسئله ی اعداد اول،محاسبه ی زمان اجرای متد ()isPrime
بوده و نتیجه ی مورد انتظار هم بدست میاد اما :
مثلا توی 10 بار اجرا بار مثلا هفتم و هشتم نتایج رو برعکس نشون میده !
خودم فکر میکنم به خاطر نوع نمونه سازی هر کلاس باشه
این موضوع اهمیتش برا من همون بحث هزینه ی الگوریتم هست و این مثال ابتدایی نشون میده که شاید چندان قابل اعتماد نباشه اینطور محاسبه ...
گرچه با اجرای برنامه فایلهای منبع ضمیمه شده توضیحاتی در خروجی میاد که بتونید درک کنید برنامه رو ،هرچند که خیلی ساده ست ، اما یه توضیح کوتاه به عنوان مستندات :
کلاس Prime1 از پرهزینه ترین الگوریتم استفاده میکنه و در Prime2 و Prime3 هر کدوم محدوده ی کار رو نسبت به قبلی نصف میکنه
در ضمن برای نمونه میتونید از این اعداد که همگی اول هستند استفاده کنید :
456899 و 456901 و 456979 و 456991
457001 و 457003 و 457013
من از 457001 استفاده کردم و نتایج - در اکثر اوقات به ترتیب برای کلاس 1،2،و3 به صورت زیر بود :
32 تقریبا
16 تقریبا
15 تقریبا
لطفا اجرا کنید و نتیجه رو بگید
ممنون
البته الگوریتم ها خیلی واضح و ابتدایی هستند(باید کلاس پیاده ساری کننده ی الگوریتم بازگشتی هم حتما اضافه بشه)
هدف من بیش از خود مسئله ی اعداد اول،محاسبه ی زمان اجرای متد ()isPrime
بوده و نتیجه ی مورد انتظار هم بدست میاد اما :
مثلا توی 10 بار اجرا بار مثلا هفتم و هشتم نتایج رو برعکس نشون میده !
خودم فکر میکنم به خاطر نوع نمونه سازی هر کلاس باشه
این موضوع اهمیتش برا من همون بحث هزینه ی الگوریتم هست و این مثال ابتدایی نشون میده که شاید چندان قابل اعتماد نباشه اینطور محاسبه ...
گرچه با اجرای برنامه فایلهای منبع ضمیمه شده توضیحاتی در خروجی میاد که بتونید درک کنید برنامه رو ،هرچند که خیلی ساده ست ، اما یه توضیح کوتاه به عنوان مستندات :
کلاس Prime1 از پرهزینه ترین الگوریتم استفاده میکنه و در Prime2 و Prime3 هر کدوم محدوده ی کار رو نسبت به قبلی نصف میکنه
در ضمن برای نمونه میتونید از این اعداد که همگی اول هستند استفاده کنید :
456899 و 456901 و 456979 و 456991
457001 و 457003 و 457013
من از 457001 استفاده کردم و نتایج - در اکثر اوقات به ترتیب برای کلاس 1،2،و3 به صورت زیر بود :
32 تقریبا
16 تقریبا
15 تقریبا
لطفا اجرا کنید و نتیجه رو بگید
ممنون