<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>İsmail Ata KURT &#187; algoritma</title>
	<atom:link href="http://degiske.com/tag/algoritma/feed/" rel="self" type="application/rss+xml" />
	<link>http://degiske.com</link>
	<description>fındıklı kahve ile güçlendirilmiş blog :)</description>
	<lastBuildDate>Tue, 24 May 2011 21:43:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>İşbirlikçi filtreleme</title>
		<link>http://degiske.com/2010/10/10/isbirlikci-filtreleme/</link>
		<comments>http://degiske.com/2010/10/10/isbirlikci-filtreleme/#comments</comments>
		<pubDate>Sun, 10 Oct 2010 15:32:16 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[İstatistik]]></category>
		<category><![CDATA[algoritma]]></category>
		<category><![CDATA[öklid uzaklığı]]></category>
		<category><![CDATA[collabrative filtering]]></category>
		<category><![CDATA[işbirlikçi filtreleme]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[movielens]]></category>

		<guid isPermaLink="false">http://degiske.com/?p=357</guid>
		<description><![CDATA[İşbirlikçi filtreleme (İB) bilgi için filtreleme süreci veya veri kaynakları, görüş açıları ve çoklu istemciler aracılığı ile kolektif filtreleme tekniklerini kullanan desenlerdir (pattern). İşbirlikçi filtreleme uygulamaları çok büyük veri setleri ile ilgilenir). İşbirlikçi filtreleme metotları birçok farklı veri setine uygulanmıştır. Bu veriler tahmin etme, görüntüleme, izleme amacıyla toplanan  (finansal veri, finansal kuruluşlar tarafından birçok finansal [...]]]></description>
			<content:encoded><![CDATA[<p>İşbirlikçi filtreleme (İB) bilgi için filtreleme süreci veya veri kaynakları, görüş açıları ve çoklu istemciler aracılığı ile kolektif filtreleme tekniklerini kullanan desenlerdir (pattern). İşbirlikçi filtreleme uygulamaları çok büyük veri setleri ile ilgilenir). İşbirlikçi filtreleme metotları birçok farklı veri setine uygulanmıştır. Bu veriler tahmin etme, görüntüleme, izleme amacıyla toplanan  (finansal veri, finansal kuruluşlar tarafından birçok finansal kaynağı birleştiren veriler veya kullanıcı verilerine odaklı elektronik mağaza ve web 2.0 uygulamaları)  verilerdir.</p>
<p>Birçok kullanıcının beğenilerini toplayarak (İşbirliği ) bir kullanıcının ilgilendikleri hakkında otomatik tahminlerde bulunma metoduna filtreleme denir.  İşbirlikçi filtreleme (İF) yaklaşımının altında yatan temel varsayım <strong>geçmişte kabul edilenlerin gelecekte de kabul edilebileceğidir</strong>.</p>
<p>Örneğin İşbirlikçi filtreleme veya tavsiye sistemi ile bir kullanıcının beğendiği, beğenmediği televizyon programları bir liste halinde ele alındığında, o kullanıcı için hangi televizyon programlarını sevebileceği kestirilebilir.  Bu tahminler <strong>kullanıcıya özeldir</strong> ancak <strong>birçok kullanıcıdan toplanan verilere dayanmaktadır</strong>.</p>
<p>Metodoloji</p>
<p>İşbirlikçi filtreleme sistemlerinin birçok biçimi vardır ancak en çok kullanılan biçimleri 2 adıma indirgenebilir.</p>
<ol>
<li>Aktif kullanıcı (beğenileri kestirilen kişi ) ile aynı oylama desenlerine sahip kullanıcılara bak</li>
<li>Aktif kullanıcıya tahmin yapmak için 1. Adımda bulunan verilere bakılır.</li>
</ol>
<p>Bu tip filtreleme işlemi kullanıcı bazlı İşbirlikçi filtrelemedir  ( User Based Collabrative filtering )</p>
<p>Alternatif olarak Öğe bazlı işbirlikçi filtreleme ( Item Based Collabrative filtering )  Amazon ile popüler olmuştur. ( X’i alan kullanıcılar ayrıca Y’yi de almıştır )</p>
<ol>
<li>Öğeler arasındaki ilişkileri belirleyen öğe-öğe matrisi oluştur.</li>
<li>Aktif kullanıcıya tahmin yapmak için matrise ve aktif kullanıcının verisini kullan.</li>
</ol>
<p><strong>Kullanıcı bazlı işbirlikçi filtreleme</strong></p>
<ul>
<li>Her kullanıcıyı diğer her kullanıcıyla karşılaştırılıyor.</li>
<li>Veri seti büyüdükçe her kullanıcıyı diğer her kullanıcıyla karşılaştırmak yavaşlıyor</li>
<li>Ürün sayısı  çok olan bir sitede  kullanıcılarının zevklerinin örtüşmesi az olabilir. Bu da hangi kullanıcıların birbiriyle benzer olduğunu bulmayı zorlaştırır.</li>
</ul>
<p><strong> </strong></p>
<p><strong>Öğe bazlı işbirlikçi filtreleme</strong></p>
<ul>
<li>Kullanıcı tabanlıya göre daha hızlı sonuçlar verebilmekte. Ön hesaplama yapılması gerekiyor.</li>
<li>Yoğun olmayan verisetlerinde daha iyi sonuçlar vermektedir.  Yoğun verisetlerinde uygulandığında kullanıcı bazlı işbirlikçi filtrelemeye benzer sonuçlar vermektedir.</li>
</ul>
<p>Uygulamaları</p>
<p>Amazon , Digg , Ebay , Google News , Hulu ,  imdb ,  iTunes , Last.fm , Netflix , StumbleUpon</p>
<h2><em>Örnek Uygulama</em></h2>
<p>Tür : Kullanıcı bazlı<br />
Algoritma : <a href="http://tr.wikipedia.org/wiki/%C3%96klid_uzakl%C4%B1%C4%9F%C4%B1">Öklid uzaklığı</a><br />
Veri :  <a href="http://www.grouplens.org/node/73">943 kullanıcı’nın 1682 film için verdiği 100.000 oy</a><br />
Amaç : Kullanıcıların beğenilerinin örtüşme oranının bulunması (0 – 1 aralığında )</p>
<p><a href="http://degiske.com/wp-content/uploads/işbirlikçi-filtreleme-öklid-örtüşme.jpg"><img class="alignnone size-medium wp-image-358" title="işbirlikçi filtreleme öklid örtüşme" src="http://degiske.com/wp-content/uploads/işbirlikçi-filtreleme-öklid-örtüşme-300x171.jpg" alt="" width="300" height="171" /></a></p>
<p><a href="/wp-content/uploads/2010/10/cfdeneme.rar">Uygulama</a> &#8211; <a href="/wp-content/uploads/2010/10/cfdeneme_src.rar">Uygulamanın kaynak kodu</a></p>
<p>Kaynak : <a href="http://en.wikipedia.org/wiki/Collaborative_filtering">http://en.wikipedia.org/wiki/Collaborative_filtering</a></p>
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2010/10/10/isbirlikci-filtreleme/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery ile T.C Kimlik No doğrulama</title>
		<link>http://degiske.com/2009/12/23/jquery-ile-t-c-kimlik-no-dogrulama/</link>
		<comments>http://degiske.com/2009/12/23/jquery-ile-t-c-kimlik-no-dogrulama/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 19:27:09 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[algoritma]]></category>

		<guid isPermaLink="false">http://blog.livaxmedia.com/?p=208</guid>
		<description><![CDATA[T.C Kimlik No Doğrulama Algoritması :
TC Kimlik numaraları 11 basamaktan oluşmaktadır.
İlk 9 basamak arasında kurulan bir algoritma bize 10. basamağı,
ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve [...]]]></description>
			<content:encoded><![CDATA[<p><strong>T.C Kimlik No Doğrulama Algoritması :</strong></p>
<p>TC Kimlik numaraları 11 basamaktan oluşmaktadır.<br />
İlk 9 basamak arasında kurulan bir algoritma bize 10. basamağı,<br />
ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.<br />
* 11 hanelidir.<br />
* Her hanesi rakamsal değer içerir.<br />
* İlk hane 0 olamaz.<br />
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10&#8242;a bölümünden kalan, yani Mod10&#8242;u bize 10. haneyi verir.<br />
* 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10&#8242;a bölümünden kalan, yani Mod 10&#8242;u bize 11. haneyi verir.</p>
<p><strong>Örnek Kullanım :</strong>( jQuery plugin olarak ):</p>
<p><strong><span id="more-208"></span><br />
</strong></p>
<pre class="brush:js">$('#kimlikNo').tcnomu();</pre>
<p>Geçerli T.C No ise True değilse False döndürür.</p>
<p><em><a href="http://degiske.com/demo/js/jquery.tcno/test.html">Örnek</a> |  <a href="http://degiske.com/wp-content/uploads/2009/12/jquery.tcno_.zip">İndir</a></em></p>
<p><strong>Örnek Kullanım</strong> : ( jQuery <a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">validate plugin</a> extension olarak ):</p>
<pre class="brush:js">    $("#tcform").validate({
        rules: {
            tcno: {
                required: true,
                minlength: 11,
                tcno: true
            },
            messages: {
                tcno: "Lütfen geçerli bir T.C No girin."
            }
        }
});</pre>
<p><a href="http://degiske.com/demo/js/jquery.validate.tcno/test_jquery.validate.extension.html">Örnek</a> | <a href="http://degiske.com/wp-content/uploads/2009/12/jquery.validate.tcno.zip"> İndir</a></p>
<p><a href="http://degiske.com/wp-content/uploads/2009/12/jquery.tcno_src.zip">Sıkıştırılmamış halleriyle birlikte indir</a></p>
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2009/12/23/jquery-ile-t-c-kimlik-no-dogrulama/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kombinasyon sınıfı</title>
		<link>http://degiske.com/2008/06/20/kombinasyon-sinifi/</link>
		<comments>http://degiske.com/2008/06/20/kombinasyon-sinifi/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 00:14:14 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[algoritma]]></category>

		<guid isPermaLink="false">http://blog.livaxmedia.com/2008/06/20/kombinasyon-sinifi/</guid>
		<description><![CDATA[Uzunca süredir günlüğüme yazı yazmıyorum ve acaba ne karalasam diye düşünürken aklıma kombinasyon  oluşturma sınıfı yazmak geldi (artık nasıl geldiyse   )
PHP class classCombination.tar.bz2
]]></description>
			<content:encoded><![CDATA[<p>Uzunca süredir günlüğüme yazı yazmıyorum ve acaba ne karalasam diye düşünürken aklıma <a href="http://tr.wikipedia.org/wiki/Kombinasyon" target="_blank">kombinasyon</a>  oluşturma sınıfı yazmak geldi (artık nasıl geldiyse <img src='http://degiske.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>PHP class <a href="/wp-content/uploads/2008/06/classCombination.tar.bz2?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">classCombination.tar.bz2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2008/06/20/kombinasyon-sinifi/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vigenere Şifrelemesi (Vigenere Cipher)</title>
		<link>http://degiske.com/2006/12/06/vigenere-sifrelemesivigenere-cipher/</link>
		<comments>http://degiske.com/2006/12/06/vigenere-sifrelemesivigenere-cipher/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 05:42:28 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[algoritma]]></category>

		<guid isPermaLink="false">http://blog.livaxmedia.com/2006/12/06/vigenere-sifrelemesivigenere-cipher/</guid>
		<description><![CDATA[
Vigenere Şifreleme tekniği, 16. yüzyılda Fransa 3. Henry Kraliyet üyesi Blaise de Vigenere tarafından bulunmuştur. Burada birbiri yerine kullanılacak harfleri belirlemek için Vigenere Tablosu kullanılır. İngiliz Alfabesi için Tablo 26&#215;26 boyutlarındadır.

Şifreleme bir anahtar kullanılarak yapılır ve anahtardaki harfler tablonun başlık satırında aranır. Buna karşılık düz metindeki harf tablonun başlık sütununda aranır. Bulunan satır ve sütunun [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify; text-indent: 36pt" class="MsoNormal"><img id="image67" alt="180px-Vigenere.jpg" src="/wp-content/uploads/2006/12/180px-Vigenere.jpg" /></p>
<p style="text-align: justify; text-indent: 36pt" class="MsoNormal">Vigenere Şifreleme tekniği, 16. yüzyılda Fransa 3. Henry Kraliyet üyesi Blaise de Vigenere tarafından bulunmuştur. Burada birbiri yerine kullanılacak harfleri belirlemek için Vigenere Tablosu kullanılır. İngiliz Alfabesi için Tablo 26&#215;26 boyutlarındadır.</p>
<p style="text-align: justify; text-indent: 36pt" class="MsoNormal"><img id="image68" alt="180px-Confederate_cipher_disk.jpg" src="/wp-content/uploads/2006/12/180px-Confederate_cipher_disk.jpg" /></p>
<p style="text-align: justify" class="MsoNormal">Şifreleme bir anahtar kullanılarak yapılır ve anahtardaki harfler tablonun başlık satırında aranır. Buna karşılık düz metindeki harf tablonun başlık sütununda aranır. Bulunan satır ve sütunun kesiştiği yerdeki harf, düz metindeki harfin yerine konarak şifreleme işlemi gerçekleştirilir.</p>
<p style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal"><img id="image65" alt="320px-Vigenere-square.jpg" src="/wp-content/uploads/2006/12/320px-Vigenere-square.jpg" /></p>
<p style="text-align: justify" class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-size: 10pt; font-family: NimbusSanL-Regu; color: black"> </span></p>
<p class="MsoNormal"><span style="color: black"> </span></p>
<p class="MsoNormal"><span style="color: black"> </span></p>
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal"><span style="color: black">Şöyle bir örnek verebiliriz:</span></p>
<p class="MsoNormal">Anahtar kelime :LEMONLEMONLE</p>
<p class="MsoNormal">Düz Metin :ATTACKATDAWN</p>
<p class="MsoNormal">Şifreli Metin :LXFOPVEFRNHR</p>
<p class="MsoNormal">
<p class="MsoNormal">
<p style="text-align: justify" class="MsoNormal"><img align="left" alt="400px-Vigenere_letter_frequencies.PNG" id="image69" src="http://blog.livaxmedia.com/wp-content/uploads/2006/12/400px-Vigenere_letter_frequencies.PNG" /></p>
<p class="MsoNormal">
<p class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">Şifreli metindeki tekrar eden desenler bulunup, bunlar arasındaki uzaklık hesaplanarak anahtar uzunluğu belirlenebilir. Örneğin anahtar uzunluğu <em>N</em> olarak bulunursa, <em>N</em> tane (Anahtardaki harfler birbirinden farklı ise) tek alfabeli Yerine-Koyma şifreleme tekniği kullanıldığı anlaşılır. Bu aşamada artık her bir tek alfabeli şifreli metne, <em>ayrı ayrı</em>, düz metin harflerinin frekans karakteristiklerini kullanan bir saldırı gerçekleştirilebilir.</p>
<p class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">Vigenere Şifreleme tekniği ilk kez 1854’de Charles Babbage tarafından kırılmıştır. Charles’ın kullandığı frekans analizi yaklaşımı, kripto analistlere bir araç olmuştur.</p>
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal"><a href="http://blog.livaxmedia.com/wp-content/uploads/2006/12/vigenere_cipher.zip">Visual C++ 6 Proje dosyaları</a>  &#8211;  <a href="/wp-content/uploads/2006/12/vigenere_cipher.zip?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7" /><a target="_blank" title="/gozat/vigenere_c/" href="/gozat/vigenere_c/?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">Gozat</a></p>
<p style="text-align: justify" class="MsoNormal"><a href="/wp-content/uploads/2006/12/vigenere_CS.zip?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">C#</a> &#8211; <a target="_blank" href="/gozat/vigenere_cs/?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">Gözat</a></p>
<p style="text-align: justify" class="MsoNormal">Kaynaklar :</p>
<p><a href="http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher">http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher</a><br />
<a href="http://ab.org.tr/ab05/tammetin/22.doc"> http://ab.org.tr/ab05/tammetin/22.doc</a></p>
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p class="MsoNormal">
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2006/12/06/vigenere-sifrelemesivigenere-cipher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sezar şifrelemesi (Caesar Cipher)</title>
		<link>http://degiske.com/2006/05/15/sezar-sifrelemesi/</link>
		<comments>http://degiske.com/2006/05/15/sezar-sifrelemesi/#comments</comments>
		<pubDate>Mon, 15 May 2006 03:19:41 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[algoritma]]></category>

		<guid isPermaLink="false">http://gezegen.livaxmedia.com/?p=4</guid>
		<description><![CDATA[
Tarihin ilk kriptolojik fikirleri İngilizce&#8217;de transposition and substitution cipher adını taşır, yani yer değiştirme ve harf değiştirme şifrelemesi. Bu yöntemlerden ilki bir yazıdaki harflerin yerlerini değiştirerek, ikincisi ise harfleri başka harflerle değiştirerek elde edilir. Bu şifrelemeyi kullanan belki de en ünlü teknik Sezar Şifresi&#8217;dir: bu şifrede, her harf o harften birkaç sonraki harf kullanılarak yazılır. [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="sezar shift" id="image7" src="/wp-content/uploads/2006/05/300px-Sezar_sifresi.gif" /></p>
<p>Tarihin ilk kriptolojik fikirleri İngilizce&#8217;de <em>transposition and substitution cipher</em> adını taşır, yani <em>yer değiştirme ve harf değiştirme şifrelemesi</em>. Bu yöntemlerden ilki bir yazıdaki harflerin yerlerini değiştirerek, ikincisi ise harfleri başka harflerle değiştirerek elde edilir. Bu şifrelemeyi kullanan belki de en ünlü teknik Sezar Şifresi&#8217;dir: bu şifrede, her harf o harften birkaç sonraki harf kullanılarak yazılır. Örneğin, 3 harf atlamalı Sezar Şifresi&#8217;nde &#8220;<strong>deneme</strong>&#8221; yerine &#8220;<strong>fğrğpğ</strong>&#8221; yazılır.</p>
<p>Öte yandan, Sezar Şifresi kırmak görece kolay olmaktadır: bir filolog bir dilde en çok geçen harfleri bulabilir. O harfler ile mesajda en sık geçen harfleri karşılaştırarak hangi harfin hangi harf ile değiştirildiği bulunabilir. Bu adımların ardından, mesaj çözülmüş olur..</p>
<p><strong>İngilizce&#8217;deki harflerin dağılımı</strong></p>
<p><img alt="alfabe histogramı" title="alfabe histogramı" src="/wp-content/uploads/2006/05/320px-English-slf.png" /></p>
<p>İşte bu basit şifrelemenin C ile yazılışı.</p>
<p><code></code></p>
<p>/*Author : ismail Ata Kurt<br />
18.04.2006<br />
*/</p>
<p>#include &#8220;stdafx.h&#8221;<br />
#include &#8220;stdlib.h&#8221;</p>
<p>int s_ascii[] = {97,98,99,100,101,102,103,104,105,106,107,108,109,110</p>
<p>,111,112,113,114,115,116,117,118,119,120,121,122};</p>
<p>int b_ascii[] = {65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81</p>
<p>,82,83,84,85,86,87,88,89,90};</p>
<p>int caesar_crypt(char* source,char* target,int k);<br />
char caesar_char_crypt(char chr,int k);</p>
<p>int caesar_decrypt(char* source,char* target,int k);<br />
char caesar_char_decrypt(char chr,int k);</p>
<p>int main(int argc, char* argv[])<br />
{<br />
int k=1;//the shift parameter, here 1, is used as the key)</p>
<p>caesar_crypt(&#8220;plain_text.txt&#8221;,&#8221;encoded_text.txt&#8221;,k);//crypts plain_text.txt to encoded_text.txt<br />
caesar_decrypt(&#8220;encoded_text.txt&#8221;,&#8221;new_plain_text.txt&#8221;,k);//decrypts encoded_text.txt to new_plain_text.txt</p>
<p>return 0;<br />
}</p>
<p>int caesar_crypt(char* source,char* target,int k) {</p>
<p>int i=0;<br />
int o=0;</p>
<p>FILE *sf;//Source File<br />
FILE *tf;//Target File<br />
char temp;</p>
<p>char *text = new char;</p>
<p>char *sig = &#8220;{top secret}&#8221;;</p>
<p>if ( (sf = fopen(source, &#8220;r&#8221;)) == NULL )<br />
{<br />
printf(&#8220;\a\aERROR: Can&#8217;t open input file!\n&#8221;);<br />
exit(1);<br />
}</p>
<p>while ( ( temp = fgetc(sf)) != EOF ) {</p>
<p>o++;<br />
text[o-1] = caesar_char_crypt(temp,k);</p>
<p>}</p>
<p>if ( fclose( sf ) )<br />
printf(&#8220;\a\aERROR: Can&#8217;t close source file!\n&#8221;);</p>
<p>if ( (tf = fopen(target, &#8220;w&#8221;)) == NULL )<br />
{<br />
printf(&#8220;\a\aERROR: Can&#8217;t open target file!\n&#8221;);<br />
exit(1);<br />
}</p>
<p>for(i=0;i< =11;i++) {<br />
fputc(sig[i],tf);<br />
}<br />
for(i=0;i< =o;i++) {<br />
fputc(text[i],tf);<br />
}</p>
<p>if ( fclose( tf ) )<br />
printf(&#8220;\a\aERROR: Can&#8217;t close target file!\n&#8221;);</p>
<p>return 0;<br />
}</p>
<p>int caesar_decrypt(char* source,char* target,int k) {</p>
<p>int i=0;<br />
int o=0;</p>
<p>FILE *sf;//Source File<br />
FILE *tf;//Target File</p>
<p>char temp;</p>
<p>char *text = new char;<br />
char *sig = &#8220;{top secret}&#8221;;</p>
<p>if ( (sf = fopen(source, &#8220;r&#8221;)) == NULL )<br />
{<br />
printf(&#8220;\a\aError: Can&#8217;t open target file!\n&#8221;);<br />
exit(1);<br />
}</p>
<p>while ( ( temp = fgetc(sf)) != EOF ) {</p>
<p>o++;</p>
<p>if(o>12) {</p>
<p>text[o-13] = caesar_char_decrypt(temp,k);<br />
//printf(&#8220;%d\n&#8221;,o-13);</p>
<p>} else {<br />
if(sig[o-1]!=temp){<br />
printf(&#8220;\a\aError: Not&#8217;a ceasar cipher encoded file!\n&#8221;);<br />
exit(1);<br />
}<br />
}</p>
<p>}</p>
<p>if ( fclose( sf ) )<br />
printf(&#8220;\a\aError: Can&#8217;t close file!\n&#8221;);</p>
<p>if ( (tf = fopen(target, &#8220;w&#8221;)) == NULL )<br />
{<br />
printf(&#8220;\a\aError: Can&#8217;t open target file!\n&#8221;);<br />
exit(1);<br />
}</p>
<p>for(i=0;i< =o;i++) {</p>
</p>
<p>fputc(text[i],tf);<br />
}</p>
<p>if ( fclose( tf ) )<br />
printf(&#8220;\a\aError: Can&#8217;t close target file!\n&#8221;);</p>
<p>return 0;<br />
}</p>
<p>char caesar_char_crypt(char chr,int k) {</p>
<p>int i=0;<br />
int s=0;<br />
char temp;</p>
<p>for(i=0;i< =25;i++) {</p>
</p>
<p>if(int(chr) == s_ascii[i]) {</p>
<p>s++;<br />
temp = s_ascii[((k+i) % 25)];<br />
break;</p>
<p>}<br />
if(int(chr) == b_ascii[i]) {</p>
<p>s++;<br />
temp = b_ascii[((k+i) % 25)];<br />
break;</p>
<p>}</p>
<p>}</p>
<p>if(s >=1) {<br />
return temp;<br />
} else {<br />
return chr;<br />
}<br />
}</p>
<p>char caesar_char_decrypt(char chr,int k) {</p>
<p>int i=0;<br />
int s=0;<br />
char temp;</p>
<p>for(i=0;i< =25;i++) {</p>
</p>
<p>if(int(chr) == s_ascii[i]) {</p>
<p>s++;<br />
temp = s_ascii[((i-k) % 25)];<br />
break;</p>
<p>}<br />
if(int(chr) == b_ascii[i]) {</p>
<p>s++;<br />
temp = b_ascii[((i-k) % 25)];<br />
break;</p>
<p>}</p>
<p>}</p>
<p>if(s >=1) {<br />
return temp;<br />
} else {<br />
return chr;<br />
}<br />
}</p>
<p><a href="/wp-content/uploads/2006/05/caesar_cipher.zip?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">Microsoft VC++ 6 proje dosyaları</a></p>
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2006/05/15/sezar-sifrelemesi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

