Paylaşım Yap
Tüm Reklamları Kapat
Sorulara Dön
Ref Lü
Üye
4

Bir sayıyı sonsuza kadar 2'ye bölmeye devam eden bir program yazabilir miyiz?

Matematiksel olarak ya da bilgisayar dünyasında bir sayıyı sonsuza kadar 2ye bölmeye çalışırsak herhangi bir problemle karşılaşabilir miyiz? Sayının sıfıra ulaştığı bir nokta mümkün müdür, ya da sayı küçüldükçe bilgisayarın ramiyle ya da işlemcisiyle ilgili bir problem yaşama ihtimalimiz var mı?
665 görüntülenme
0
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
  • Dış Sitelerde Paylaş
  • Soruyu Takip Et
  • Raporla
  • Mantık Hatası Bildir
Tüm Reklamları Kapat
4 Cevap
Semihcan Çiçek
Yazılım Mühendisi

Özel bir teknik geliştirilmediği sürece mümkün değil yazılım üzerinde tanımladığımız veri tipleri sınırlıdır bölme döngüsünde bulunan sayı bir yerden sonra küsurat basamak sınırına ulaşacaktır ve aritmetik bir taşma yaşayarak saçmalayacaktır.

Veri tiplerinin sınırı nedir?

Tüm Reklamları Kapat

Yukarıda da değindiğim gibi özel bir teknik geliştirilmediği taktirde standart veri tipleri üzerinden bunu yapmak mümkün değil çünkü double, float gibi veri tipleri x64 bir sistem üzerinde hafızada 8 byte (karakter) uzunluğunda bir yerciğe sahiptir.

8 byte uzunluk demek referans verdiği verinin birbirinden farklı yalnızca 2568 adet değer alabileceği anlamına gelir.

Tüm Reklamları Kapat

Bu formül ile baktığımızda zaten sadece hafızaya dayalı özel bir teknik geliştirilse dahi RAM dediğimiz ufaklığın hafızasıyla sınırlıyız. Tabii ki bu soruya tam anlamıyla imkansız demek doğru olmaz fakat yüzeysel bakıldığında cevap imkansıza daha yakın görünüyor.

Veri tiplerinin hafıza ortamını anlamak için kaynağa bakabilirsin.

Kaynaklar

  1. Semih Çiçek. C++ Nasıl Çalışır? Hafıza Ortamı. (11 Ocak 2020). Alındığı Tarih: 14 Şubat 2023. Alındığı Yer: BPT | Arşiv Bağlantısı
Bu cevap, soru sahibi tarafından en iyi cevap seçilmiştir. Ancak bu, cevabın doğru olduğunu garanti etmez.
1
0
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
  • Dış Sitelerde Paylaş
  • Raporla
  • Mantık Hatası Bildir
Mehmet Emre Demir
Bu işi yapabilecek programlama dilleri hakkında bilgi sahibiyim

Bunu python ile yapabilirsiniz. Ama yaparsanız bir yerden sonra bilgisayarın gücü yeterli gelmez ve çökebilir. O yüzden pek mantıklı bir iş olmaz. İllaki bunu yapmak istiyorsanız yapabilecek olan python kodu:

Not: Bu işlem sonucunda bilgisayarınızda doğabilecek herhangi bir sorun benim sorumluluğumda değildir.(merak etmeyin ciddi birşey olmaz ama olursa diye bu uyarıyı koyuyorum)

Tüm Reklamları Kapat

sayi= vermek istediğiniz değer
while True:
print(sayi/2)

2
0
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
  • Dış Sitelerde Paylaş
  • Raporla
  • Mantık Hatası Bildir
Murat Avcim
Murat Avcim
57K UP
Bir maarif platformunun âmir-i hatâdarıyım

Bir sayıyı sonsuza kadar 2'ye bölmeye devam eden bir program yazmak mümkün ancak bu süreç sonsuzluk kavramının pratikte gerçekleştirilemeyeceğini göstermektedir.[1] Programlama dillerinde döngüler kullanarak bu işlemi tekrarlayabiliriz.[2] Ancak bilgisayarımızın kapasitesine göre bir süre sonra program duracaktır. C dilinde temel döngü örnekleri verilmiştir.[3]

Kaynaklar

  1. F. Bozkuş, et al. Ortaokul Öğrencilerinin Sonsuzluğu Kavrayışları. Alındığı Tarih: 5 Şubat 2023. Alındığı Yer: Dergi Park doi: 10.16949/turcomat.53890. | Arşiv Bağlantısı
  2. python-istihza. Döngüler (Loops) — Yazbel Python Belgeleri. Alındığı Tarih: 5 Şubat 2023. Alındığı Yer: yazbel | Arşiv Bağlantısı
  3. Şadi Evren ŞEKER. C Dilinde Döngü Örnekleri – Bilgisayar Kavramları. (11 Kasım 2009). Alındığı Tarih: 5 Şubat 2023. Alındığı Yer: Bilgisayar Kavramları | Arşiv Bağlantısı
1
0
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
  • Dış Sitelerde Paylaş
  • Raporla
  • Mantık Hatası Bildir
Esat Kudret
Esat Kudret
110K UP
Akıl yürütmeyi öğrenmeye çalışan bir öğretmenim.

Böyle bir program yazabiliriz fakat bilgisayarımıza yazık olur.

Bir sayıyı sürekli ikiye böl komutu içeren bir program pekala yazılabilir. Bölme işlemi de başlayabilir ancak bir süre sonra bilgisayarımız kapasitesine göre ya kitlenir ya donar ya da çöker.

Tüm Reklamları Kapat

Matematiksel olarak bir sayıyı sonsuza değin ikiye bölme imkanı teorik olarak var. Ancak sonsuz kelimesinin kendisi ne bir son ne de bir varışa işaret etmediği için, varacağımız her noktanın da ötesi olacağından pratikte bu imkansızdır.

Bir sayı ikiye bölünebiliyorsa sıfırdan farklı demektir. Sıfırdan farklı hiçbir sayı bölünerek sıfıra ulaşmaz ancak çok yaklaşır.

2
0
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
  • Dış Sitelerde Paylaş
  • Raporla
  • Mantık Hatası Bildir
Daha Fazla Cevap Göster
Cevap Ver
Evrim Ağacı Soru & Cevap Platformu, Türkiye'deki bilimseverler tarafından kolektif ve öz denetime dayalı bir şekilde sürdürülen, özgür bir ortamdır. Evrim Ağacı tarafından yayınlanan makalelerin aksine, bu platforma girilen soru ve cevapların içeriği veya gerçek/doğru olup olmadıkları Evrim Ağacı yönetimi tarafından denetlenmemektedir. Evrim Ağacı, bu platformda yayınlanan cevapları herhangi bir şekilde desteklememekte veya doğruluğunu garanti etmemektedir. Doğru olmadığını düşündüğünüz cevapları, size sunulan denetim araçlarıyla işaretleyebilir, daha doğru olan cevapları kaynaklarıyla girebilir ve oylama araçlarıyla platformun daha güvenilir bir ortama evrimleşmesine katkı sağlayabilirsiniz.
Popüler Yazılar
30 gün
90 gün
1 yıl
Evrim Ağacı'na Destek Ol

Evrim Ağacı'nın %100 okur destekli bir bilim platformu olduğunu biliyor muydunuz? Evrim Ağacı'nın maddi destekçileri arasına katılarak Türkiye'de bilimin yayılmasına güç katın.

Evrim Ağacı'nı Takip Et!
Aklımdan Geçen
Komünite Seç
Aklımdan Geçen
Fark Ettim ki...
Bugün Öğrendim ki...
İşe Yarar İpucu
Bilim Haberleri
Hikaye Fikri
Video Konu Önerisi
Başlık
Gündem
Bugün bilimseverlerle ne paylaşmak istersin?
Bağlantı
Kurallar
Komünite Kuralları
Bu komünite, aklınızdan geçen düşünceleri Evrim Ağacı ailesiyle paylaşabilmeniz içindir. Yapacağınız paylaşımlar Evrim Ağacı'nın kurallarına tabidir. Ayrıca bu komünitenin ek kurallarına da uymanız gerekmektedir.
1
Bilim kimliğinizi önceleyin.
Evrim Ağacı bir bilim platformudur. Dolayısıyla aklınızdan geçen her şeyden ziyade, bilim veya yaşamla ilgili olabilecek düşüncelerinizle ilgileniyoruz.
2
Propaganda ve baskı amaçlı kullanmayın.
Herkesin aklından her şey geçebilir; fakat bu platformun amacı, insanların belli ideolojiler için propaganda yapmaları veya başkaları üzerinde baskı kurma amacıyla geliştirilmemiştir. Paylaştığınız fikirlerin değer kattığından emin olun.
3
Gerilim yaratmayın.
Gerilim, tersleme, tahrik, taciz, alay, dedikodu, trollük, vurdumduymazlık, duyarsızlık, ırkçılık, bağnazlık, nefret söylemi, azınlıklara saldırı, fanatizm, holiganlık, sloganlar yasaktır.
4
Değer katın; hassas konulardan ve öznel yoruma açık alanlardan uzak durun.
Bu komünitenin amacı okurlara hayatla ilgili keyifli farkındalıklar yaşatabilmektir. Din, politika, spor, aktüel konular gibi anlık tepkilere neden olabilecek konulardaki tespitlerden kaçının. Ayrıca aklınızdan geçenlerin Türkiye’deki bilim komünitesine değer katması beklenmektedir.
5
Cevap hakkı doğurmayın.
Bu platformda cevap veya yorum sistemi bulunmamaktadır. Dolayısıyla aklınızdan geçenlerin, tespit edilebilir kişilere cevap hakkı doğurmadığından emin olun.
Ekle
Soru Sor
ve seni takip ediyor

Göster

Şifrenizi mi unuttunuz? Lütfen e-posta adresinizi giriniz. E-posta adresinize şifrenizi sıfırlamak için bir bağlantı gönderilecektir.

Geri dön

Eğer aktivasyon kodunu almadıysanız lütfen e-posta adresinizi giriniz. Üyeliğinizi aktive etmek için e-posta adresinize bir bağlantı gönderilecektir.

Geri dön

Close