Sonning ixtiyoriy butun darajasini hisoblash
Sonning ixtiyoriy butun darajasini topish informatikaning boshlang’ich kurslarida o’rganilgan sodda muommolardan biri.
Yechimi ham oddiy:
int pow = 1; for(int i =0; iAnglaganingizdek, yuqoridagi kod n^m ni hisoblaydi. Kod n ni m marta ko'paytirib chiqishga asoslangan. Bundan tezroq usul bormi? Ha bor ekan. Daraja bu sonni bir necha marta ko'paytirishdan iborat amal bo'lsa qanday qilib bundan tez bo'lishi mumkin. Keling, 7^13 ni hisoblab ko'raylik. Demak,
7^13 = 7 * 7 * 7 * 7 * 7 * 7 * 7 * 7 * 7 * 7 * 7 * 7 * 7 = ((7^2 * 7)^2)^2*7
ko'rinishida ifodalab olishimiz mumkin. Bu usul kvadratlarga keltirib darajani hisoblash usuli hisoblanadi. Bu usulning rekursiv ifodasi:
Formulani kodga aylantiramiz va quyidagi natijani olamiz.
////// Sonning ixtiyoriy darajasini hisoblash /// /// son /// daraja ///x ning n darajasini qaytaradi public static double Pow(double x, int n) { // agar nBu usulning qulayligi shundaki n'ning taxminan 4 dan katta bo'lgan qiymatlarida, oddiy ko'paytirib borish usulidan tezroq ishlaydi. Ushbu usuldan keyinchalik qiyinroq muommolarning yechimi uchun foydalanamiz. Boshqacha qilib aytganda, sonning har qanday butun darajasini hisoblashni 7 marta ko'paytirish amali bilan bajarish mumkin.
Manba:
Algoritm
Sonning ixtiyoriy butun darajasini hisoblash