Bilmek istediğin her şeye ulaş

Java Netbeans ortamında ondalıklı faktöriyel sayıyı (4,2!) ve üslü sayının virgüllü üssünü hesaplayan programı nasıl yazabilirim?

Gamma fınksiyonu reel sayılardan reel sayılara olan ama faktoriyele en yakın fonksiyondur. Aslında denildiği gibi 4.2'nin faktoriyeli yoktur. Ama gamma fonksiyonu sonucunu hesaplayabilirsiniz ki istenen bu gibi.

Gamma(t) = Integral[ (x^(t-1)) e^(-x) ] integralinin 0'dan sonsuza sonucudur. Bunu 0,1 hassasiyetle dijitalize ederseniz:

const int BIG_NUMBER = 1000000;
int sonuc = 0;
delta = 0.1;

for (int i=0; i< BIG_NUMBER; i++) {
sonuc += ((i*delta) ^(4.2 - 1) *exp(-i*delta) *delta;
}

Not: exp fonksiyonunun java'da hangi kütüphane de olduğunu bilmiyorum (java.lang.math olmalı). Yazdığımı sahte-kod olarak düşünün. Ayrıca kodu hızla yazdım ve denemedim, hata içerebilir. Delta ne kadar küçük BIG_NUMBER ne kadar büyükse sonuç o kadar doğru çıkar.
  • Paylaş
Ondalıklı sayıların faktöriyeli alınmaz ki... Yani tam sayı olması lazım faktöriyel işlemi için.. .
  • Paylaş
3

İlyas Ağlar, nasıl yani ödev yani...hoca sizi deniyor mu diyosunuz???

İlyas Ağlar, gama fonksiyonu ile yapacaksınız demişti...

Ceyhun Çakar, Gamma fınksiyonu reel sayılardan reel sayılara olan ama faktoriyele en yakın fonksiyondur. Aslında denildiği gibi 4.2'nin faktoriyeli yoktur. Ama gamma fonksiyonu sonucunu hesaplayabilirsiniz ki istenen bu gibi.

Gamma(t) = Integral[ (x^(t-1)) e^(-x) ] integralinin 0'dan sonsuza sonucudur. Bunu 0,1 hassasiyetle dijitalize ederseniz:

const int BIG_NUMBER = 1000000;
int sonuc = 0;
delta = 0.1;

for (int i=0; i< BIG_NUMBER; i++) {
sonuc += ((i*delta)^(4.2 - 1)*exp(-i*delta)*delta;
}

Not: exp fonksiyonunun java'da hangi kütüphane de olduğunu bilmiyorum (java.lang.math olmalı). Yazdığımı sahte-kod olarak düşünün. Ayrıca kodu hızla yazdım ve denemedim, hata içerebilir. delta ne kadar küçük BIG_NUMBER ne kadar büyükse sonuç o kadar doğru çıkar.

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

246 Görüntülenme3 Takipçi2 Yanıt