SORU
12 NİSAN 2010, PAZARTESİ


İyi Karma Dizeleri için İşlev

Dizeleri için iyi bir karma işlev kadar düşünmeye çalışıyorum. Ve dizedeki ilk beş karakter (beş, nerede biter aksi durumda olduğunu varsayarak) için unicode değerlerini toplamak için iyi bir fikir olabileceğini düşünüyordum. Bu iyi bir fikir olurdu, yoksa kötü mü?

Java yapıyorum, ama bu kadar fark yaratacağını tahmin etmezdim.

CEVAP
12 NİSAN 2010, PAZARTESİ


Genellikle karma meblağlar yapmaz, durdurmak ve aynı karma tencere olacak yoksa.

ve aksi takdirde Evi ve evler aynı hash olurdu çünkü ilk n karakterleri sınırı olmaz.

Genellikle hashs değerleri alıp bir şeyler istersin diye bir asal sayı (benzersiz sağlamalarının üretmek için daha olası hale getirir) ile çarpın:

int hash = 7;
for (int i = 0; i < strlen; i  ) {
    hash = hash*31   charAt(i);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010