11 Haziran 2007 Pazartesi

PHP ile Matematik Fonksiyonları

Merhaba Webkolog dostlarım!

Web geliştirme sadece metinleri ve görselleri yönetmekle kalmaz, aynı zamanda sayılarla da sıkça uğraşmayı gerektirir. Finans uygulamalarından oyun geliştirmeye, istatistiksel analizlerden basit hesaplamalara kadar birçok senaryoda matematiksel işlemlere ihtiyaç duyarız. Neyse ki PHP, bu matematiksel işlemleri kolayca yapabilmemiz için zengin bir **matematik fonksiyonları** kütüphanesine sahip. Bu makalede, PHP'nin sayısal verileri işlemek için sunduğu temel ve ileri düzey fonksiyonlara göz atacağız. Hadi gelin, sayılarla oynamaya başlayalım!


1. Yuvarlama ve Mutlak Değer Fonksiyonları

Sayıları belirli bir hassasiyete yuvarlamak veya mutlak değerlerini almak, günlük programlama görevlerinde sıkça karşımıza çıkar.


<?php
$sayi = 10.7;
$negatifSayi = -5.4;
$ondalikSayi = 3.2;
$yarimSayi = 1.5;

// Bir sayının mutlak değerini alır: abs()
echo "abs(-10): " . abs(-10) . "<br>"; // Çıktı: 10
echo "abs(" . $negatifSayi . "): " . abs($negatifSayi) . "<br>"; // Çıktı: 5.4

// Bir sayıyı yukarıya yuvarlar: ceil()
echo "ceil(" . $ondalikSayi . "): " . ceil($ondalikSayi) . "<br>"; // Çıktı: 4

// Bir sayıyı aşağıya yuvarlar: floor()
echo "floor(" . $sayi . "): " . floor($sayi) . "<br>"; // Çıktı: 10

// Bir sayıyı en yakın tam sayıya yuvarlar (0.5 ve üzeri yukarı): round()
echo "round(" . $sayi . "): " . round($sayi) . "<br>"; // Çıktı: 11
echo "round(" . $ondalikSayi . "): " . round($ondalikSayi) . "<br>"; // Çıktı: 3
echo "round(" . $yarimSayi . "): " . round($yarimSayi) . "<br>"; // Çıktı: 2 (0.5 ve üzeri yukarı)
echo "round(2.49): " . round(2.49) . "<br>"; // Çıktı: 2

// İsteğe bağlı olarak ondalık basamak hassasiyeti ile yuvarlama
echo "round(3.14159, 2): " . round(3.14159, 2) . "<br>"; // Çıktı: 3.14
?>

2. Minimum, Maksimum ve Karekök Fonksiyonları

Bir dizi veya birden fazla sayı arasından en küçük veya en büyük değeri bulmak, ya da bir sayının karekökünü almak için bu fonksiyonları kullanırız.


<?php
$sayilar = array(15, 8, 23, 4, 30);

// Girilen değerler içinde maksimum olanı bulur: max()
echo "max(5, 12, 3): " . max(5, 12, 3) . "<br>"; // Çıktı: 12
echo "max(dizi): " . max($sayilar) . "<br>"; // Çıktı: 30

// Girilen değerler içinde minimum olanı bulur: min()
echo "min(5, 12, 3): " . min(5, 12, 3) . "<br>"; // Çıktı: 3
echo "min(dizi): " . min($sayilar) . "<br>"; // Çıktı: 4

// Girilen sayının karekökünü alır: sqrt()
echo "sqrt(64): " . sqrt(64) . "<br>"; // Çıktı: 8
echo "sqrt(25): " . sqrt(25) . "<br>"; // Çıktı: 5
?>

3. Üslü Sayılar ve Logaritma

Bir sayının kuvvetini almak veya logaritma hesaplamak için kullanışlı fonksiyonlar.


<?php
// Bir sayının üstünü alır: pow()
echo "pow(2, 3) (2 üzeri 3): " . pow(2, 3) . "<br>"; // Çıktı: 8
echo "pow(5, 2) (5 üzeri 2): " . pow(5, 2) . "<br>"; // Çıktı: 25

// e sayısının kuvveti: exp() (e^x)
echo "exp(1) (e üzeri 1): " . exp(1) . "<br>"; // Çıktı: 2.71828...

// Logaritma hesaplar (varsayılan olarak doğal logaritma, yani e tabanında): log()
echo "log(10): " . log(10) . "<br>"; // Çıktı: 2.3025... (ln 10)

// Belirli bir tabanda logaritma hesaplamak için log() ve log10() kullanılır
// log($sayi, $taban) şeklinde doğrudan taban belirtme PHP 4.3'ten sonra geldi,
// bu yüzden 5.2 öncesi için dönüşüm yaparak manuel hesaplanır: log($sayi) / log($taban)
echo "log10(100): " . log10(100) . "<br>"; // Çıktı: 2 (10 tabanında log 100)
?>

4. Trigonometrik Fonksiyonlar

Sinüs, kosinüs, tanjant gibi trigonometrik hesaplamalar yapmak için kullanılır. Unutmayın, bu fonksiyonlar radyan cinsinden değer alır ve döndürür.


<?php
$aciDerece = 90;
$aciRadyan = deg2rad($aciDerece); // Dereceyi radyana çevir

// Dereceyi Radyana Dönüştürür: deg2rad()
echo $aciDerece . " derece = " . $aciRadyan . " radyan.<br>"; // Çıktı: 90 derece = 1.57... radyan.

// Verilen Radyanı Dereceye Dönüştürür: rad2deg()
echo $aciRadyan . " radyan = " . rad2deg($aciRadyan) . " derece.<br>"; // Çıktı: 1.57... radyan = 90 derece.

// Sinüs hesaplar: sin()
echo "sin(" . $aciDerece . " derece): " . sin($aciRadyan) . "<br>"; // Çıktı: 1 (Yaklaşık olarak)

// Kosinüs hesaplar: cos()
echo "cos(" . $aciDerece . " derece): " . cos($aciRadyan) . "<br>"; // Çıktı: 0 (Yaklaşık olarak)

// Tanjant hesaplar: tan()
echo "tan(" . $aciDerece . " derece): " . tan($aciRadyan) . "<br>"; // Çıktı: (Çok büyük bir sayı, tanımsızlığa yakın)

// Arc kosinüs: acos()
echo "acos(0): " . rad2deg(acos(0)) . " derece<br>"; // Çıktı: 90 derece (Yaklaşık)

// Arc sinüs: asin()
echo "asin(1): " . rad2deg(asin(1)) . " derece<br>"; // Çıktı: 90 derece (Yaklaşık)

// Hipotenüs uzunluğunu hesaplar: hypot(x, y)
echo "hypot(3, 4) (3-4-5 üçgeni): " . hypot(3, 4) . "<br>"; // Çıktı: 5

// Pi sayısı: pi() veya M_PI sabiti
echo "Pi sayısı: " . pi() . "<br>"; // Çıktı: 3.14159...
?>

5. Sayı Sistemleri Arası Dönüşüm

Farklı sayı sistemleri (ikilik, onluk, sekizlik, onaltılık) arasında kolayca dönüşüm yapabilirsiniz.


<?php
// İkilik (Binary) bir sayıyı Onluk (Decimal) düzene çevirir: bindec()
echo "bindec('1011'): " . bindec('1011') . "<br>"; // Çıktı: 11

// Onluk (Decimal) bir sayıyı İkilik (Binary) düzene çevirir: decbin()
echo "decbin(13): " . decbin(13) . "<br>"; // Çıktı: 1101

// Onluk (Decimal) bir sayıyı Onaltılık (Hexadecimal) düzene çevirir: dechex()
echo "dechex(255): " . dechex(255) . "<br>"; // Çıktı: ff

// Onaltılık (Hexadecimal) bir sayıyı Onluk (Decimal) düzene çevirir: hexdec()
echo "hexdec('FF'): " . hexdec('FF') . "<br>"; // Çıktı: 255

// Onluk (Decimal) bir sayıyı Sekizlik (Octal) düzene çevirir: decoct()
echo "decoct(10): " . decoct(10) . "<br>"; // Çıktı: 12

// Sekizlik (Octal) bir sayıyı Onluk (Decimal) düzene çevirir: octdec()
echo "octdec('12'): " . octdec('12') . "<br>"; // Çıktı: 10
?>

6. Rastgele Sayı Üretme

Oyunlar, şifre oluşturma veya rastgele seçimler gibi durumlarda rastgele sayılara ihtiyaç duyarız.


<?php
// Rastgele bir sayı üretir: rand()
echo "1 ile 100 arasında rastgele sayı: " . rand(1, 100) . "<br>"; // Her çalışmada farklı

// Daha iyi rastgele sayılar için mt_rand() kullanılır (PHP 4.2.0'dan beri varsayılan olarak rand() ile aynı işlevi görür)
echo "mt_rand (1 ile 100 arasında): " . mt_rand(1, 100) . "<br>";

// Rastgele sayı üretecinin tohumunu ayarlar: srand() ve mt_srand()
// Bu fonksiyonlar, rand() ve mt_rand() tarafından kullanılan rastgele sayı üretecinin başlangıç noktasını belirler.
// Genellikle microtime() gibi dinamik bir değerle kullanılarak her seferinde farklı bir başlangıç noktası sağlanır.
srand((double) microtime() * 1000000);
echo "Srand sonrası rastgele sayı: " . rand(1, 100) . "<br>";
?>

PHP'nin matematik fonksiyonları, sayılarla ilgili her türlü görevi yerine getirmenize olanak tanıyan kapsamlı bir araç setidir. Finansal hesaplamalardan bilimsel modellere, basit yuvarlamalardan karmaşık dönüşümlere kadar geniş bir yelpazede bu fonksiyonları kullanabilirsiniz. Sayısal verilerle çalışırken bu fonksiyonları tanımak ve doğru yerde kullanmak, kodunuzu daha verimli ve güçlü kılacaktır.

Webkolog'u takipte kalın!

Hepinize bol kodlu ve başarılı projeler dilerim!

0 yorum:

Yorum Gönder