Sonning ixtiyoriy butun darajasini hisoblash

Sonning ixtiyoriy butun darajasini hisoblash

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; i 

Anglaganingizdek, 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:

sonning ixtiyoriy butun darajasini hisoblash 65e4b7c97c5bb


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 n 

Bu 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