folder Tahribat.com Forumları
linefolder C - C++
linefolder Bir Sayının Tek Mi Çift Mi Oldugunu Gösteren Program



Bir Sayının Tek Mi Çift Mi Oldugunu Gösteren Program

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RootB
    RootB's avatar
    Kayıt Tarihi: 31/Ekim/2008
    Erkek

    kuytul bunu yazdı:
    -----------------------------

    kodlama mantığı txt'in dediği gibi. yalnız 10 rakamlı bir şey yazınca yazılım kitlenir mi acaba. yüksek sayılarda deniyebilir misin.


    -----------------------------

    Bence de bir denenmeli. 10 değil 100 haneli bir değer girince ne yapacak? Bir deneyip sonucu yazarsa seviniriz.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Kız Babası
    kuytul
    kuytul's avatar
    Kayıt Tarihi: 08/Eylül/2005
    Erkek
    RootB bunu yazdı:
    -----------------------------
    kuytul bunu yazdı:
    -----------------------------

    kodlama mantığı txt'in dediği gibi. yalnız 10 rakamlı bir şey yazınca yazılım kitlenir mi acaba. yüksek sayılarda deniyebilir misin.


    -----------------------------

    Bence de bir denenmeli. 10 değil 100 haneli bir değer girince ne yapacak? Bir deneyip sonucu yazarsa seviniriz.


    -----------------------------
    işlemcinin guvvatı mühim oluyor o konuda sanırım :)

    instagram.com/yks.rehberlik >> YKS Rehberlik ve Eğitim Koçluğu için takipte kalın ;)
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    g2k
    g2k's avatar
    Kayıt Tarihi: 03/Mayıs/2007
    Erkek

    RootB bunu yazdı:
    -----------------------------

    kuytul bunu yazdı:
    -----------------------------

    kodlama mantığı txt'in dediği gibi. yalnız 10 rakamlı bir şey yazınca yazılım kitlenir mi acaba. yüksek sayılarda deniyebilir misin.


    -----------------------------

    Bence de bir denenmeli. 10 değil 100 haneli bir değer girince ne yapacak? Bir deneyip sonucu yazarsa seviniriz.


    -----------------------------

    100 haneli sayıyı nereye giriyosun hocam yavaş gel. o kadar büyük sayıyı taşıyacak tip mi var. yalnız benim programım 30 haneli sayılarda bile aynı sürede işlem yapıyor TxT nin kini denemek lazım.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RootB
    RootB's avatar
    Kayıt Tarihi: 31/Ekim/2008
    Erkek

    g2k bunu yazdı:
    -----------------------------

    RootB bunu yazdı:
    -----------------------------

    kuytul bunu yazdı:
    -----------------------------

    kodlama mantığı txt'in dediği gibi. yalnız 10 rakamlı bir şey yazınca yazılım kitlenir mi acaba. yüksek sayılarda deniyebilir misin.


    -----------------------------

    Bence de bir denenmeli. 10 değil 100 haneli bir değer girince ne yapacak? Bir deneyip sonucu yazarsa seviniriz.


    -----------------------------

    100 haneli sayıyı nereye giriyosun hocam yavaş gel. o kadar büyük sayıyı taşıyacak tip mi var. yalnız benim programım 30 haneli sayılarda bile aynı sürede işlem yapıyor TxT nin kini denemek lazım.


    -----------------------------

    30 haneliyi aynı  sürede tamamlıyorsa sorun yok.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    HaYVaN
    HaYVaN's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    Talesin müridleri bir sayısının tek mi çift mi olduğunu taşlar sayesinde anlarlarmış :\

    Bir grup taşı alıp eşleştirirlermiş. Eğer boşta sayı kalırsa o sayı tek sayı olurmuş. Ancak boşta sayı kalmazsa sayı çiftmiş :| Tabii konuyla alakası yok ama bildiğim bir bilgiyi paylaşmak istedim :D

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TxT
    TxT's avatar
    Kayıt Tarihi: 13/Eylül/2007
    Erkek

    @kuytul büyük sayılarda denemek istersen veri tipini değiştirmen gerekir.. Bazı veri tipleri şu aralıkta incelemek istersen.. 

    long 64 bit                 -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807
    int 32 bit                   -2,147,483,648 ile 2,147,483,647
    short 16 bit               -32,768 ile 32,767
    byte 8 bit                  -128 ile 127
    double 64 bit             4.9e-324 ile 1.8e+308
    float 32 bit                1.4e-045 ile 3.4e+038

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    Oncelikle bir sayinin cift mi, tek mi oldugunu anlamak icin cok daha performansli ve basit bir yol var, ve tahminimce mod 2 yaptiginiz sey compiler bu sekilde makine diline ceviriyordur.

     

    1) Bir sayinin tek olmasi icin, 2 lik sistemdeki son bitinin 1 olmasi gerekmektedir,  0001(1)  0011(3)  0101(5) 0111(7)  sayilari gibi.

    2) Ozaman biz sadece aldigimiz sayinin son bitinin 1 veya 0 olmadigini kontrol ederek o sayinin cift olup olmadigini anliyabiliriz. 

    3) Bunu yapmak icin o sayinin ilk bit basamaklarini gormezden gelip oyle birsey yapalim ki, yani maskeliyelim ki, son basamak haric her bit 0 olsun. Sadece son basamak 1 ise 1 olarak kalabilsin.

    4) Bit wise AND islemi ile bunu yapabiliriz "&" ( tek and isareti bu anlama geliyor dillerin cogunda)

    Ornek olarak 32 basamakli 2 lik tabanda bir sayi yaziyorum

    100101001010101111001010010100101    // bu sayi tek cunku son basamaginda 1 var, ve sadece son basamagindakini almak icin maskeliyecem alttaki sayi ile

    000000000000000000000000000000001 

    ----------------------------------------------------

    000000000000000000000000000000001  karsimiza yeniden 1 geldi :) boylece anladikki bu sayi tek. halbuki son basamak 0 olsaydi, sayi tamamen 0 olucakti.

     

    O halde;

    if(  KULLANICIDAN_ALDIGIMIZ_SAYI   &  1 )

    {

      TEK SAYI ISLEMLERI BURAYA

    else

     {

       CIFT SAYI ISLEMLERI BURAYA 

     

    Boylece mod  almadan veya herhangi bir islem kullanmadan bir sayinin tek veya cift oldugunu anlamis olduk. Bunu labda odev yazarken kesfedip yuksek puan almistim :) ama sonra baktigimda zaten benden onceki genclik coktandir kullaniyormus :) herneyse.

     

     

     

    Asal sayi icin ise soyle birsey diyebilirim; daha dogrusu asal sayilar icin matematiksel bir teorem mi denir tam bilemiyorum ama bir matematiksel dogruluk kabul

    ediliyor. Bir sayi kokune kadar olan sayilara bolunmuyorsa, o sayi asal sayidir. Bu ispatlanmisti suana kadarki toplam islem hacminin gelen son noktasina kadar :) 

     

    O halde soyle yapicaz, diyelim ki kullanici 100 girdi,  bunu koku 10,  o halde    2 den basliyarak  10 a kadar 100 u bolmeye calisiyoruz.

    Kullanici 150 girmisse, koku  12.247  yapiyor biz bunu floor degilde yukariya aliyoruz yani ceil deniyor. C++ ta math.h in icinde  ceil(sayi);  diye tanimli bir fonksiyonu var hatirladigim.

    O halde yapicagin is, kullanici sayiyi girdigi andan itibaren, once girdigini sayinin kokunu bulmak. Bulduktan sonra 2 den baslayip koke kadar bu sayiyi loop icinde modlamak, ta ki mod 0 cikana kadar. Eger koke kadar 0 cikmissa sayi asal degil, cikmamissa gonul rahatligi ile sayi asaldir diyebilirsin. 

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    g2k
    g2k's avatar
    Kayıt Tarihi: 03/Mayıs/2007
    Erkek

    TxT bunu yazdı:
    -----------------------------

    @kuytul büyük sayılarda denemek istersen veri tipini değiştirmen gerekir.. Bazı veri tipleri şu aralıkta incelemek istersen.. 

    long 64 bit                 -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807
    int 32 bit                   -2,147,483,648 ile 2,147,483,647
    short 16 bit               -32,768 ile 32,767
    byte 8 bit                  -128 ile 127
    double 64 bit             4.9e-324 ile 1.8e+308
    float 32 bit                1.4e-045 ile 3.4e+038


    -----------------------------

    hocam seninki çok büyük sayılarda performans kaybı olur. bir sayıyı kendinden önceki bütün sayılara bölmek var, sadece bir fazlasını ve bir eksiğini 6 ya bölmek var.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TxT
    TxT's avatar
    Kayıt Tarihi: 13/Eylül/2007
    Erkek

    @SpArK  hocam eline sağlık hocam güzel yöntemler :)

    @g2k  evet hocam biraz meşakatli malesef

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Kız Babası
    kuytul
    kuytul's avatar
    Kayıt Tarihi: 08/Eylül/2005
    Erkek

    tebrikler spark asal sayı için sayının köküne kadar böldürme fikri güzel :) şu anda bi işime yarayacağundan değil de merak ettiğimden sormuştum beyin fırtınası oldu :P


    instagram.com/yks.rehberlik >> YKS Rehberlik ve Eğitim Koçluğu için takipte kalın ;)
Toplam Hit: 36059 Toplam Mesaj: 84