نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل در یه الگوریتم دارم

  1. #1

    Question مشکل در یه الگوریتم دارم

    سلام بچه ها.
    توی یه تاپیک این سوال رو جواب دادن.

    یک الگوریتم θ(nlog n) بنویسید که باقیمانده تقسیم X^n بر P را محاسبه نماید
    (برای سهولت می توانید فرض کنید که n توانی از 2 است یعنی n=2^k و k یک عدد صحیح مثبت است)

    ولی حالا من همین سوال رو وقتی که پیچیدگی زمانیش logn باشه میخوام.
    اگه کسی میتونه کمکم کنه.روش الگوریتم و کدش رو میخوام.

    من کامپیوتر نیستم.واسه خانمم میخوام. ممنون میشم ازتون

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    227

    نقل قول: مشکل در یه الگوریتم دارم

    سلام،
    خوب خدا رو شکر فقط الگوریتم میخواین. از تابع بازگشتی استفاده کنین به این صورت که :
    a^(2k) = (a^k)^2
    a^(2k+1) = (a^2k)*a

    متوجه شدین دیگه !؟ اینجوری میتونین هر مرحله توان رو نصف کنین و در نتیجه الگوریتمی با پیچیدگی log n دارین.

  3. #3

    نقل قول: مشکل در یه الگوریتم دارم

    سلام
    نه! متوجه نشدم. میشه کاملتر بگین؟

    راستی کدشم میخواستم. ممنون میشم

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    227

    نقل قول: مشکل در یه الگوریتم دارم

    خوب کجاشو نفهمیدین آخه !؟ فکر کنم به اندازه ی کافی واضح بود ! anyway :

    If f(N) = x^N % P

    • N=1 ===> f(N) = x%P
    • N be even ===> f(N) = f(N/2)^2%P
    • N be odd ===> f(N) = f(N-1)*x%P

    long f(long N){
    if(N==1) return x%p;
    if(N%2==0) return (long)(Math.pow(f(N/2),2)%p);
    else return f(N-1)*x%p;
    }

  5. #5

    نقل قول: مشکل در یه الگوریتم دارم

    ممنون.بررسی کنم ببینم چطوره.
    دستت درد نکنه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •