💻 Bilgisayar, 💾 Programlama

Divide And Conquer Metodu ile Üs Hesaplayan PHP Kodu

PHP Logo
Divide And Conquer metodu, bir problemi daha küçük alt problemlere bölmek, küçük problemleri çözmek ve bunları birleştirmek anlamına gelmektedir.

Aşağıdaki ufak kod parçası, verilen bir sayının, verilen bir sayı kadar üssünü divide and conquer yöntemi ile alır.

Karmaşıklığı O(n)’dir.

For foreigners: The algorithm bellow calculates a number’s power using divide and conquer method. It’s complexity is O(n). Educational purposes only. There are less complex algorithms exist to do that (due to recursion overhead).

Kod Parçası

<?php
/* 
  Yazar: Umut Benzer
  https://ubenzer.com/
  Kullanım: power(TABAN,US);
*/

echo power(9,17); /* 9 üssü 17 */

function power($base, $exp) {
	if($exp > 1) {
		$b = round($exp / 2,0, PHP_ROUND_HALF_DOWN);
		$c = $exp - $b;

		$result_left = power($base, $b);
		$result_right= power($base, $c);
	
		return $result_left * $result_right;
	} else {
		return $base;
	}
}

Nasıl Çalışıyor?