Veri Sıkıştırma – Huffman Algoritması – JS

 
 
 var sozluk=[];
 
function print(a){
	$("#out").html($("#out").html()+a);
}
function clone(oldObject){
	return jQuery.extend({}, oldObject);
}
 
$("#buton").click(function(e){
	calc();
});
 
 
function Node(ust,left,right,level,frekans,char){
	this.ust = ust;
  this.left = left;
  this.right = right;
  this.level = level ;
  this.char = char;
  this.frekans = frekans;
  this.kod="";
}
 
function calc(){
  var text = $("#tb").val();
  var array = text.split("");
  var chars = [];
  var frekans = [];
  var sorted = [];
 
	$("#out").html("Toplam : "+array.length+"<h2>Frekanslar</h2>");
 
  for(k in array){
    if(chars.indexOf(array[k]) == -1)
      chars.push(array[k]);
  }
 
  for(k in array){
      ch = chars.indexOf(array[k]);
      if(ch != -1){
        if(frekans[ch]){
          frekans[ch]++;
        }
        else
        {
          frekans[ch]=1;
        }
      }
  }
 
  for(i in chars){
    print("'"+chars[i]+"' "+( frekans[i]/array.length)+"<br>" );
    sorted.push({
    	"char" : chars[i],
      "frekans" : (frekans[i]/array.length)
    });
  }
 
 
  var levels=[[]];
 
  for(i=0;i<sorted.length;i++){
  		levels[0].push(new Node(false,false,false,0,sorted[i].frekans,sorted[i].char));
  }
 
  var level = 0;
  while(levels[level].length>2){
 
    levels[level].sort(function(a, b) {
    	return parseFloat(b.frekans) - parseFloat(a.frekans);
		});
 
    level++;
    levels.push([]);
 
    i = levels[level-1].length-1;
 
    levels[level].push(new Node(false,levels[level-1][i-1],levels[level-1][i],level,(levels[level-1][i-1].frekans+levels[level-1][i].frekans),"yok"));
 
    levels[level-1][i-1].ust = levels[level][levels[level].length-1];
    levels[level-1][i].ust = levels[level][levels[level].length-1];     
 
		for(var j = levels[level-1].length-3 ; j>=0;j--){
      	levels[level].push(levels[level-1][j]);
        levels[level-1][j].ust = levels[level][levels[level].length-1];
    }
 
 
  }
 
   levels[level].sort(function(a, b) {
    	return parseFloat(b.frekans) - parseFloat(a.frekans);
	});
 
 
 
  GenerateCode(levels[level][0],"1");  
  GenerateCode(levels[level][1],"0");
 
 
 
 
 
 
 
  print("<h2>Ağaç</h2>");
 
 
 
  levels.forEach(function(e){
  	print("<br>");
    e.forEach(function(l){
    	print(Math.round(l.frekans*100)/100+" | ");
    })
  });
 
    print("<h2>Kod</h2>");
 
 
 
  levels.forEach(function(e){
  	print("<br>");
    e.forEach(function(l){
    	print(l.kod+" | ");
    })
  });
 
  sozluk=[];
 
  print("<h2>Kodlama</h2>");
      levels[0].forEach(function(l){
    	print(l.char+" = "+l.kod+" <br> ");
      sozluk.push({
      	"char" : l.char,
        "kod" : l.kod
      });
    })
 
  print("<h2>Encode</h2>");
 
  array.forEach(function(e){
  	print(encode(e));
  });
 
  console.log(levels);
 
 
}
 
 
function GenerateCode(node,kod){
  	node.kod=kod;
    if(node.left)
  		GenerateCode(node.left,"1"+node.kod);  	
    if(node.right)
    	GenerateCode(node.right,"0"+node.kod);
}
 
function encode(char){
  for(k in sozluk){
  	if(sozluk[k].char==char)
    	return sozluk[k].kod;
  }
  return "?";
}

Argumentum ad ignorantiam (cahiliye-safsatası)

Argumentum ad ignorantiam, cahiliye-safsatası olarak türkçeye çevrilebilir. Bilgi eksikliğiyle oluşturulan veya bilgi eksikliğinin kullanıldığı safsata argumanlardır. Bilgi eksikliği olarak daha çok “kanıtlayıcı bilgi” eksikliği kullanılır. (Bunlara “ispatlama mecburiyeti safsatası” da diyebiliriz)

Dikkat etmeliyiz ki, bir şey

  • Doğru
  • Yanlış
  • Doğruluğu ve yanlışlığı bilinmiyor
  • Doğruluğu ve yanlışlığı bilinemez

olur.

Örnekler

Ben Adem’den üstünüm çünkü ben ateşten o topraktan yaratıldı. (Ateşin topraktan üstünlüğü bilinmeyen birşeydir.)

Tanrının yokluğu kimse tarafından ispatlanamamıştır. Öyleyse tanrı vardır.

Tanrının olmadığını ispat edemezsin, o zaman yoktur diyemezsin. (Bu argüman doğrudur. [Fakat karşıdaki "vardır da diyemezsin" diye cevap verme hakkına sahiptir] Üstteki ile farkına dikkat edin)

Ben bilmiyorum, öyleyse yoktur.

UFO’ların olamayacakları ispat edilemediğine göre, UFO’lar mevcuttur.

Sen zeki misin? O zaman ispatla . İspatlayamadığına göre zeki değilsin.

Arayışlar Kitabı – Hakikate Giden Yol – El-munkizü minezzalal

Çeşitli yayın evlerinden, farklı isimlerde yayınlanan Gazalinin , El-munkiz adlı kitabının Doç.dr.Osman Gürman tarafından tercümesini okumuş bulunmaktayım.

Özet

Kitap, 80 sayfa küçük bir şey aslında özetlemeye gerek yoktur. Kitaba Gazalinin bütün düşüncelerinin özeti olarak bakıp, okumanızı tavsiye ederim. Buna rağmen özetin özeti şeklinde , gözüme çarpan yerleri yazacağım.

  • Bir ilim dalının, doğru geliştiğine karar vermek veya bozukluk olduğunu iddaa etmek için , onu tamamen öğrenip ,o dalda yetkinliğe sahip olmak gerekir. Bir disiplini anlamadan reddetmek, karanlığa taş atmak gibidir . (Gazali burada felsefeyi kastedip, felsefeyi tamamen öğrendikten sonra , felsefenin yanlış tarafları olduğunu keşfettiğini söylüyor. Burada felsefinin bir kısmını kastettiğine dikkat etmeniz gerekir. ) [S 22]
  • Gazali filozofları, bir ilaha karşı tutumuna göre 3′e ayırır : Dehri(ateist),fizikçiler/doğacılar(teist materyalistler),metafizikçiler(ilahiyatçılar) . Bunlarının ilk ikisi sofist, erken dönem filozoflarıdır. Metafizikçiler ise Sokrat,Eflatun ve kısmen Aristodur. [S 23]
  • Gazali felsefeyi 6 konuya ayırır. Matematik, Mantık, Fizik, Metafizik(Teoloji), Siyaset, Ahlak . Eleştirileri metafizik konusuna yöneliktir. [ S 26 ]
  • Matematiğin, kesin bilgilere dayalı olduğunu ve dini doğrulama veya dinle çelişme bakımından din bilimleriyle alakası olmadığını söyler.
  • Matematikle ilgilenenlerin şöyle bir riski vardır; matematiğin kesinliğini gören bir kişi , felsefenin metafizik konusunda kesinlik içerdiğine inanabilir. Bu hataya düşen kişi , bazı filozofların veya bilim adamlarının metafizik görüşlerine, kesin bilgiymiş gibi inanarak, dini reddedebilir. Bu kişiye metafizik konusunun teorik olduğu anlatıldığında, tuttuğu filozofa hayranlık beslediği için bunu kabul etmeye yanaşmaz. Çünkü ya yeni bilgiler öğrenmeye üşengeçlik gösterir ya da arzularına kapılmış olduğu için kendini akıllı görür. [S 26 27]
  • Matematiğin ikinci / fiziğin ilk riski, cahil din adamlarının,kendi aklıyla uyuşmadığı için matematiğin/fiziğin bir kısmının reddetmesidir. İnsanlar doğal olarak, matematikçilerin haklı olduğunu görüp, dini reddetmesi muhtemeldir. [ S 28 ]
  • Gazali , (bazı) fizikçilerin “Evrenin Allahtan bağımsız olup, Allah tarafından yönlendirilemeyeceği” görüşüne karşı çıkar.
  • Birçok filozofun “Evren yaratılmamıştır, hep vardı ve hep var olacak.” görüşüne karşı çıkar. [Bu görüş, artık modern bilim tarafından da pek kabul görmemektir. (bknz: Big Bang Teorisi, Evrenin soğuması)]
  • Aristonun “Bedenler yeniden dirilmez, karşılık görecek olan sadece ruhtur. Bu ceza sadece ruhanidir.” görüşüne karşı çıkar. Aristonun yeniden dirilme görüşü doğrudur. Fakat bedenin dirilmeyeceği görüşü islama zıttır.
  • Bazı filozofların “Allah sadece genel şeyleri bilir, ince ayrıntıları bilemez” görüşüne de karşı çıkar. (bknz : sebe 3)
  • Doğruyu kişisine göre tanıma! Önce doğruyu tanı ki doğru olanı da tanıyabilesin. (Hz.Ali). Akıllı kimse, doğru söyleyeni ister yanlış yolda olsun, ister doğru yolda, kabul eder. [S 34]
  • Mantık Bilimini bilmeyen bir kişi felsefeyle kesinlikle uğraşmamalıdır. [ Mantıklı olmakla, mantık bilimini bilmek aynı şey değildir. En mantıksız insan bile mantıklı olduğunu düşünebilir] Çünkü deniz kıyısında yüzme bilmeyenler, denizden uzak tutulur, usta yüzücüler değil. Yılana dokunmaktan, çocuklar uzak tutulur, işini bilen afsuncu değil. [S 34] Çocukların eline tüfek verilmez, uzak tutulmalıdırlar fakat bir asker bundan uzak tutulmaz.
  • Akıl tek başına, anlaşılmaz noktalardaki bütün sır perdelerini kaldıracak kadar yeterli değildir. [S 39]
  • Nübüvvete delil olarak ; Astronomide bin yıldan gerçekleşen şeylerinin bilinmesinin çok zor olduğunu ve ilaç biliminin özelliklerinin tespitini neredeyse imkansız olduğunu, bunların sadece peygamberler tarafından indirilmiş bilgiler olabileceğini söyleyip, delil olarak bunu göstermiştir. [s 62]
  • Bir ilmi bilen, o ilmin ustalarının kim olduğunu bilir. ”Tıp bilen, kimin hakiki doktor olduğunu ayırt eder. Fakat bilmeyen ayırt edemez.” dedikten sonra peygamberlerin bilmini bilen kişide, kimin peygamber olup olmadığını böyle anlar. [s 62]
  • “Kim bir zalime yardım ederse, Allah o zalimi onun başına musallat eder.” hadisini peygamberliği delil olarak kullanmıştır. (Bir zalimi desteklersen, ilerde onun sana da zulmedebileceğini hesaba katman gerekir, onun için yılanı başında keseceksin.) İnanmıyorsan, bir zalime destek ver ve sana da zülmetmesini bekle. [s 64]
  • Peygamberliğin varlığı konusunda, sopayı yılana çevirme ve ayı iki bölmek gibi şeyleri önemseme, kesin bilgiyi peygamberliğinin tarihen sabit olgu olması (bknz.Perennial(kalıcı) felsefe)  ve peygamberlerin getirdiği bilgilerin doğruluğu ile doğrula. [s 64]

Eleştiri

Modern bilim araştırmalarla (kızıl ötesi ışın yayılımı), Gazaliyi , (bazı)filozofların”Evren yaratılmamıştır, hep vardı ve hep var olacak” görüşüne karşı haklı çıkarmıştır (kesin olarak olmasa da, bilim camiasında artık pek inananı yoktur, Çoğu bilim adamı 14 milyar yıl önce var olduğunu, milyar yıllar sonrada evrenin yok olacağını düşünmektedir. ) . Kuantum fiziği , klasik fizik kurallarının istisnaların olduğunu ortaya sürmektedir. Gazalinin peygamberlik konusundaki astronomi ve ilaç bilimi delillerinin artık geçerliliği yoktur. Günümüzde 150 milyar yıl sonra evrenin soğuyacağını bile hesaplayabiliyoruz. Gök cisimlerin hareketini hesaplayıp, 1000 yıl sonra hangi cismin nerede olacağını hesaplayabiliyoruz. İlaç bilimi de testler ve veri madenciliği temeli üzerine kuruludur. Şu an bu bilimlerin “akıl almaz” bir tarafı yoktur.  Eski yunan filozofları dünyanın çapını zamanında geometri ile tespit etmişlerdir. Hatta Aristo’dan itibaren tutulmaları bile hesaplayabiliyoruz. Buradan Gazalinin çağının astronomi bilgisinde geri kaldığı anlaşılıyor.Yani bu astronomik hesaplar çok eskiden de yapılabiliyordu. Onun dışında , Gazalinin “yıldızların, insan kişiliğine bir etkisi yoktur. Yıldızlar çok uzaktadır, insana bir etkisi olmaz.” görüşü doğrudur.

ad populum türü safsata (çoğunluk safsatası)

Argumentum ad populum, ” insanlara ilişkin argüman ” sözlük anlamına sahiptir. Genel kanının yani çoğunluğunun görüşünün doğru olduğuna yönelik safsatadır.

Bir argümanı çoğunluğun savunması doğruluğunu kanıtlamaz

Dünyada 2 milyar hrıstiyan vardır. Çoğunluk inandığı için, hrıstiyanlık doğru dindir.

ABD savaşa girmeseydi hitler ABD’ye saldırmayacaktı diyorsun, ama herkes biliyor ki onun hedefi tüm dünyayı feth etmekti

Eğer herkes yapıyorsa bende yapmalıyım.

Dışkının tadı güzeldir, trilyonlarca sinek yanılıyor olamaz!

Çoğunlukçu demokrasi , en doğru karar sistemidir. Çoğunluğun, azınlığa zulmü olarak bakmamalısın!

Merve iyi bir öğrenci olmasa bütün dersleri iyi olur muydu?

Burada hiç müşteri yok, buraya girmeyelim, ya pahalıdır ya yemekleri kötüdür.

Diyalog

A : Sence hangi telefonu almalıyım, en iyisi hangisi?

B: iPhone 6 almalısın, herkes onu alıyor.

Ad Hominem türü safsata (şahsi-safsata)

Doğruyu kişisine göre tanıma! Önce doğruyu tanı ki doğru olanı da tanıyabilesin. (Hz.Ali)

ad hominem türkçede ado-minim diye telafuz edilir, sözlük anlamını “bir kişiye” demektir. Şahsi safsata diyebiliriz.

Mantıkta; bir şahşa ilişkin safsatalara verilen addır. Kişi hedef alınarak, arguman çürütülmeye çalışılır.

Bir kişinin yanlış bir şey yapması, onun bütün argümanlarının yanlış olduğunu kanıtlamaz.

Önermeler

Freud cinsel sapığın biridir, dolayısıyla söylediklerini ciddiye almamıza gerek yok

Hitler, diktatörün tekidir, yaptığı herşey yanlıştır.

Diyalogda

A : xyzde ?

B : xyzde diyen bu A’lar, zamanından yzdfg yapanlar değilmiydi, xyzde yargıları yanlıştır, ne hakla konuşuyorlar?

A: Bence dünyanın en sağlıklı içeceği biradır.

B: Hadi ordan , ayyaş seni.