نقل قول: مشکل در یه الگوریتم دارم
سلام،
خوب خدا رو شکر فقط الگوریتم میخواین. از تابع بازگشتی استفاده کنین به این صورت که :
a^(2k) = (a^k)^2
a^(2k+1) = (a^2k)*a
متوجه شدین دیگه !؟ اینجوری میتونین هر مرحله توان رو نصف کنین و در نتیجه الگوریتمی با پیچیدگی log n دارین.
نقل قول: مشکل در یه الگوریتم دارم
سلام
نه! متوجه نشدم. میشه کاملتر بگین؟
راستی کدشم میخواستم. ممنون میشم
نقل قول: مشکل در یه الگوریتم دارم
خوب کجاشو نفهمیدین آخه !؟ فکر کنم به اندازه ی کافی واضح بود ! 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;
}
نقل قول: مشکل در یه الگوریتم دارم
ممنون.بررسی کنم ببینم چطوره.
دستت درد نکنه