SORU
28 Mayıs 2009, PERŞEMBE


Eşleme iki eşsiz ve deterministik bir şekilde bir tamsayı,

Tek tamsayı C. ikisini birleştirmek istiyorum iki pozitif tamsayılar A ve B düşünün

C. için bir araya gelen diğer tamsayılar D ve E olamaz hayır Yani toplama operatörü ile birleştirerek çalışmıyor. Eg 30 10 = 40 = 40 0 = 39 1 Ne concatination çalışır. "" "2" = 312 = "3" "12" . 31 Eg

Bu arada operasyon da deterministik (her zaman aynı girdiler ile aynı sonucu verim) olmalıdırveher zaman tamsayılar pozitif veya negatif tarafı da bir tam sayı verecektir.

CEVAP
28 Mayıs 2009, PERŞEMBE


NxN -> N örten bir eşleme arıyorsunuz. Bu örneğin dovetailing için kullanılır. Sözde giriş için this PDF bakabilirsinizeşleştirme fonksiyonları. Vikipedi özel bir eşleştirme işlevi, yani Cantor pairing function tanıtır:

  • pı () k1, k2 = 1/2(k1, k2)(k1 k2 1) k2

Üç açıklamalar:

  • Başkalarının ortaya koyduğu gibi, Eğer eşleştirme işlevi uygulamak için planlıyorsanız, yakında keyfi büyük tamsayı (bignums) ihtiyacınız olabilir.
  • Eğer çift (a, b) ve (b, a) arasında bir ayrım yapmak istemezsin eğer doğru değilse, o zaman eşleştirme işlevini uygulamadan önce a ve b gibi.
  • Aslında yalan söyledim. ZxZ -> N örten bir eşleme arıyoruz. Cantor fonksiyonu sadece negatif olmayan sayılar üzerinde çalışır. Bu kolay f : Z -> N, Böyle bir tanımlansın tanımlamak için, çünkü bu bir sorun değildir,:
    • f(n) = n 2*n >= 0
    • f(n) = -n * 2 - 1n < 0

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eyes4beautee

    eyes4beautee

    17 HAZİRAN 2011
  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006
  • Xcode programming tutorials

    Xcode progra

    17 EYLÜL 2006