Global unikal identifikator

Vikipediya, azad ensiklopediya
Jump to navigation Jump to search

GUID (Global unikal identifikator) (ing. Globally Unique Identifier) — 128-bitlik unikal identifikator. Onun başlıca özəlliyi, üst-üstə düşmə səbəbindən yaranan toqquşmalar təhlükəsindən çəkinmədən genişlənən servislər və tətbiqi proqramlar yaratmağa imkan verən bənzərsizlikdir. Hər bir ayrıca GUID üçün unikallığa zəmanət verilməsə də, bənzərsiz açarların ümumi sayı o qədər böyükdür ki, (2128 və ya 3.4028×1038) dünyada bir-birindən asılı olmadan üst-üstə düşən iki açarın generasiya olunması ehtimalı son dərəcə azdır. Bununla belə, üst-üstə düşmə halı olmuşdur: Windows 95 əməliyyat sistemində DOS-proqramların (.pif) və ZipMagic 2000 proqramının başlatma simgəsinin GUID-ləri üstə-üstə düşmüşdür.

Mətndə GUID defislərlə qruplara bölünmüş və fiqurlu mötərizəyə alınmış 32 ədəd onaltılıq rəqəmdən ibarət sətir şəklində yazılır. Məsələn:

{6F9619FF-8B86-D011-B42D-00CF4FC964FF}

[1]Java proqramlaşdırma dilinin ehtimalını hesablamaq üçün proqram: <source lang="java"> public void probabilityCoincidenceGUID() { MathContext mc = new MathContext(1000, RoundingMode.HALF_UP);

   BigDecimal N = BigDecimal.valueOf(2).pow(128, mc);
   BigDecimal n = BigDecimal.valueOf(2).pow(50, mc);
   BigDecimal result_ = calcProbabilityCoincidenceGUID(N, n, mc);
   double result = result_.doubleValue();} 
   

private BigDecimal calcProbabilityCoincidenceGUID(BigDecimal N, BigDecimal n, MathContext mc) { // = N \cdot (LN(N-1)-LN(N-n)) + n \cdot (LN(N-n)-LN(N)-1) - (LN(N-1)-LN(N)-1)

   BigDecimal N_1 = N.subtract(BigDecimal.valueOf(1), mc);
   BigDecimal N_n = N.subtract(n, mc);
   BigDecimal ln_N = BigDecimalUtils.ln(N, 400);
   BigDecimal ln_N_1 = BigDecimalUtils.ln(N_1, 400);
   BigDecimal ln_N_n = BigDecimalUtils.ln(N_n, 400);
   BigDecimal v1 = N.multiply(ln_N_1.subtract(ln_N_n, mc), mc);
   BigDecimal v2 = n.multiply(ln_N_n.subtract(ln_N, mc).subtract(BigDecimal.valueOf(1), mc), mc);
   BigDecimal v3 = ln_N_1.subtract(ln_N, mc).subtract(BigDecimal.valueOf(1), mc);
   BigDecimal exp = v1.add(v2, mc).subtract(v3, mc);
   BigDecimal result = BigDecimal.valueOf(1).subtract(BigDecimalUtils.exp(exp, 400));
   return result;}

Ədəbiyyat[redaktə | əsas redaktə]

  • İsmayıl Calallı (Sadıqov), “İnformatika terminlərinin izahlı lüğəti”, 2017, “Bakı” nəşriyyatı, 996 s.