Her 5 dakikada ikiye bölünen bakteri örneği

her-5-dakikada-ikiye-bolunen-bakteri-ornegi (büyük resim için tıklayın)

Bir bakteri cinsi her 5 dakikada bir ikiye bölünerek çoğalmaktadır. Başlangıçta bir bakteri olduğunu kabul ederek bir saat sonra oluşacak bakteri sayısını bulalım. 

Başlangıçta 1 bakteri var ve bu bakteri her 5 dakikada bir ikiye bölünerek çoğalıyor. 1 saat içerisinde 12 defa bölünme başlangıç ve bitiş sürecinden geçecek (5*12=60. Not: toplam bölünme sayısı 12'den fazla olacaktır

Java üzerinde, fonksiyon oluşturup ve döngü kullanarak gerçekleştirecek olursak, 

  • int topBakSay(){
    • int bakSay=1;
    • for(int i=5;i<=60;i+=5) {
    • bakSay = bakSay * 2;
    • }
    • return bakSay;

main class üzerinde kullanalım… 

  • int sonuc=topBakSay();
  • System.out.println("Toplam Bakteri Sayısı: "+sonuc);

Yine Java üzerinde direk main class içerisine fonksiyon oluşturmadan, doğrudan döngü ile gerçekleştirecek olursak, 

  • int sayac=0,bakSay=1;
  • for(int i=5;i<=60;i+=5 {
  • bakSay = bakSay * 2;
  • sayac++;
  • System.out.println(sayac + ". süreç: " + i + ".dk bakSay=" + bakSay);

Yine dikkat edilecek olursa 12 süreç olduğundan ve her aşamada da 2'nin bulunduğu aşamanın kuvveti kadar bakteri oluştuğundan,

  • System.out.println((int)Math.pow(2,12));

 olarak da sonuca ulaşılabilir. Dinamik olarak yapılması daha iyidir zira problem verileri (örneğin her 6 dakikada bir 4 e bölünse ve 3 saat sonraki toplam bakteri sayısı istense) değiştikçe kodun düzenlenmesi gerekecektir. 

 

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)