SORU
21 Temmuz 2014, PAZARTESİ


Rasgele sayılar don't çok rastgele görünüyor

6 karakter veya daha az rastgele base32 sayılar üretmeye çalışıyorum. Bu yaklaşık 1 milyar farklı kombinasyon vermek gerekir.

Oluşturmak için bir program, bu “rastgele” sayılar. yarattım Ancak, ortalama bir çift her 40.000 nesiller üretir gibi görünüyor.

Neden bu “rakamlar üzerinde bir milyar farklı kombinasyon var ne zaman? bu yüzden sık sık tekrarlayarak,” rasgele

İşte benim kod:

static void Main(string[] args)
{
    int seed = Environment.TickCount;
    Random r = new Random(seed);

    Dictionary<int, int> resultDictionary = new Dictionary<int, int>();
    for (int x = 1; x <= 1000; x  )
    {
        Dictionary<string, int> dictionary = new Dictionary<string, int>();
        try
        {
            while (true)
            {
                int rand = r.Next(0, 1073741823);
                CrockfordBase32Encoding encoding = new CrockfordBase32Encoding();
                string encodedRand = encoding.Encode((ulong)rand, false);
                dictionary.Add(encodedRand, rand);
            }
        }
        catch (Exception)
        {
        }
        Console.WriteLine(string.Format("{0} - {1}", x, dictionary.Count));
        resultDictionary.Add(x, dictionary.Count);
        x  ;
    }

    Console.WriteLine();
    Console.WriteLine("Average Number Before Duplicate: "   resultDictionary.Average(x => x.Value));
    Console.ReadLine();
}

CEVAP
21 Temmuz 2014, PAZARTESİ


Bu Birthday Problem benzer. İki aynı doğum gününü paylaşma olasılığı Nedir n insanlar, bir grup verilir1? Sandığınızdan daha yüksek.

Senin durumunda, rastgele 0 ve 1,073,741,823 n kat arasında bir numara seçmek size verecektir Oran bir yinelenen nedir?

Linkten bir yaklaşım yukarıda 1-exp(-(n*n)/(2*d)). Eğer bir yinelenen 52.5% hakkında bir olasılık eşittir n=40,000 seçilirse, ortalama 40,000 alır sonra görmek çoğaltır makul görünüyor.


1doğum günü eşit evrensel dağıtılmış olduğunu varsayarsak, ki gerçekte böyle değil ama "yeterli" ve matematiği daha kolay hale getirir . bulunur

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • Attempts at least

    Attempts at

    1 Ocak 2007
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008