Ana içeriğe atla

TC Kimlik No Algoritması

Oluşabilecek tüm kimlik numaralarını hesaplayan algoritmayı aşağıda bulabilirsiniz. Bu sayede tam hatırlayamadığınız bir kimlik numarasını bulabilirsiniz mesela. Ben bu yüzden kullanmıştım bu algoritmayı.


for (int a1 = 1; a1 < 10; a1++)
for (int a2 = 0; a2 < 10; a2++)
for (int a3 = 0; a3 < 10; a3++)
for (int a4 = 0; a4 < 10; a4++)
for (int a5 = 0; a5 < 10; a5++)
for (int a6 = 0; a6 < 10; a6++)
for (int a7 = 0; a7 < 10; a7++)
for (int a8 = 0; a8 < 10; a8++)
for (int a9 = 0; a9 < 10; a9++)
{
int tekBasamaklar = a1 + a3 + a5 + a7 + a9;
int ciftBasamaklar = a2 + a4 + a6 + a8;
int t1 = (tekBasamaklar * 3) + ciftBasamaklar;
int c1= (10 - (t1 % 10)) % 10;

int t2 = c1 + ciftBasamaklar;
int t3 = (t2 * 3) + tekBasamaklar;
int c2 = (10 - (t3 % 10)) % 10;

string tc = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}", a1, a2, a3, a4, a5, a6, a7, a8, a9, c1, c2);
Console.WriteLine(tc);
}

ya da bu algoritmayla biraz daha oynayıp şu şekilde işler yapabilirsiniz:


/// Girilen 9 basamaklı sayının son iki basamağını bulup TC Kimlik No oluşturur
string tc = Console.ReadLine();
int[] digit = new int[9];
for (int i = 0; i < 9; i++)
digit[i] = Convert.ToInt32(tc.Substring(i, 1));

int tekBasamaklar = digit[0] + digit[2] + digit[4] + digit[6] + digit[8];
int ciftBasamaklar = digit[1] + digit[3] + digit[5] + digit[7];
int t1 = (tekBasamaklar * 3) + ciftBasamaklar;
int c1 = (10 - (t1 % 10)) % 10;

int t2 = c1 + ciftBasamaklar;
int t3 = (t2 * 3) + tekBasamaklar;
int c2 = (10 - (t3 % 10)) % 10;

string result = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}", digit[0], digit[1], digit[2], digit[3], digit[4], digit[5], digit[6], digit[7], digit[8], c1, c2);
Console.WriteLine(result);

Yorumlar

Yorum Gönder

Bu blogdaki popüler yayınlar

C# ile Yüz Bulma ve Tanıma

Aylardır uğraştığım yüz tanıma sistemi tezimi nihayet bitirdim.Lafı uzatmadan hemen yaptığım uygulamadan bahsedeyim. Öncelikle yaptığım yüz tanıma sistemini gerçekleştirmek için donanımsal ve yazılımsal olarak en düşük sistem gereksinimleri şunlar.  —Donanımsal Gereklilikler İşlemci:        Pentium III veya üstü Bellek:         128 MB Hard Disk:   4GB veya üstü Monitör:       14”SVGA          —Yazılımsal Gereklilikler İşletim Sistemi:                             Microsoft Windows NT/2000 veya üstü Paket:                           ...

Yüz Tanıma Sistemi - 2

PCA Algoritması ve Özyüzler Metodu PCA algoritması ve Özyüzler metodunun kısaca bir tarihçesine bakalım; Öz yüzler yaklaşımı ilk olarak Sirovich ve Kirby (Eigenfaces, Principal Component Analysis, PCA, 1987) tarafından kullanılarak yüzü etkin bir şekilde göstermek için uygulanmıştır. Temel bileşen analizi olarak da bilinen Karhunen-Louve genişlemesine dayanmaktadır. Bu, bilgi teorisinde veriyi kodlama ve kodunu çözmede iyi bilinen bir tekniktir. Bu kişiler yüz resimleri gruplarından başlayarak bu resimlerin temel bileşenlerini hesaplamışlardır. Daha sonra da öz vektörün sadece küçük parçalarının ağırlıklı birleşimini kullanılarak yüz resmini yeniden oluşturmuşlardır. (Kirby ve Sirovich, 1990) bu metotlarını 115 yüz resmi veri tabanında test ettiler ve yaklaşık olarak %3 yanılma (hata) payıyla bir yüzü yeniden oluşturmak için sadece 40 öz vektörün yeterli olduğunu göstermişlerdir. Bundan kısa bir süre sonra yüzün simetrisini dikkate alarak (örneğin bütün yüzlerde gözler, burun v.s....

Yüz Tanıma Sistemi - 6

C# Kameradan Görüntü Alma Kameradan görüntüyü almak için "webcam_capture" kütüphanesini kullanıyoruz.Referanslardan dll'i ekledikten sonra. Önce forum kısmına bir picturebox ve bir buton ekleyelim.Daha sonra "Kamera" adında bir sınıf oluşturuyoruz.Bu sınıf kod içeriği şöyle ; using System.Data; class Kamera {  private WebCamCapture kameraa;  private Anaform p;  PictureBox ilkresim; public void Kamera_Etkin(Anaform form, int W, int H, PictureBox ilkres) {   p = form;  ilkresim = ilkres;  kameraa = new WebCamCapture();  kameraa.CaptureHeight = H;  kameraa.CaptureWidth = W;  kameraa.TimeToCapture_milliseconds = 1;  kameraa.ImageCaptured += new WebCamCapture.WebCamEventHandler(kamera_resim); } public void Start() {   kameraa.Start(0); } public void kamera_resim(object source, WebcamEventArgs e) {   ilkresim.Image = e.WebCamImage; } } Kamera sınıfımızı oluşturduk şimdi anaform'da bir kamera nesnesi tanımlıyoruz ; using S...