Global unikal identifikator
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} Java proqramlaşdırma dilinin ehtimalını hesablamaq üçün proqram: 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) { 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; }