اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكنك تحقيق ذلك عن طريق إستخدام المكتبة math في لغة جافا وتحديداً الدالة pow

حيث تقوم الدالة math.pow بأخذ معطيان  a, b وتقوم بإرجاع ناتج رفع العددa للقوى b فمثلاً 

math.pow(5,2)

سيقوم برفع العدد 5 للقوى 2 مما يعطينا ناتج 25

ويمكن عمل برنامج بسيط من أجل  ذلك بالجافا عن طريق الشفرة البرمجية التالية 

public void main(){
    Scanner scan = new Scanner(System.in);
	int x = scan.nextInt();
    int y = scan.nextInt();
    System.out.println(math.pow(x,y));
	
}

 

  • 0
نشر

يمكننا فهم دالة حساب القوة وهي ضرب العدد بنفسه عدد من المرات، x قوة y هي جداء x*x*x*x* لعدد y من المرات.

يمكننا كتابة دالة عودية بهذه الطريقة:

public static int pow( int a, int n) {
    if ( n == 0 ) {
        return 1;
    }
    return a * pow(a,n-1);
}

سوف تتكرر عملية ضرب a بنفسها n مرة، وشرط التوقف هو n = 0

وبالاستفادة من الرياضيات، وخواص الأس

aⁿ as a^n/2 ⨯ a^n/2      


2^8 =     Prod = ( (a ^ 2) ^ 2) ^ 2

تجزئة القوة والتوزيع

    /** divide & Conquer دالة to لحساب a^n.
     * n عدد صحيح موجب */

    long power(int a, int n)
    {
        if(n==0)
            return 0;
        // إن كان الأساس 0 نعيد 0
        if(a == 0)
            return 0;
        if(n%2 == 0) 
            return power(a*a, b/2);     // القوة عدد زوجي
        else
            return a * power(a*a, b/2); // القوة عدد فردي
    }

هذا يختصر تعقيد الخوازرمية من (n)O إلى (n)log2 حيث في كل خطوة نحسب العودية لنصف قيمة الأس

a^2 =  a  *  a
a^3 = a * a * a

a^4 = a^2 * a^2


a^5 
	= a * a ^ 4 

	= a * a^2 * a^2

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...