RNGCryptoServiceProvider не проходит тест хи-квадрат на больших случайных числах

Кто-нибудь знает, почему RNGCryptoServiceProvider не проходит тест хи-квадрат при попытке получить числа, превышающие 300 000 000.

Я попытался получить случайное число в диапазоне 0–1 000 000 000, и в результате, когда я получил неудачный критерий хи-квадрат, числа в диапазоне 0–300 000 000 оказались больше, чем другие числа.

в конце концов я соединил форму большого числа с меньшими числами (0-99 * 100M + 0-99,999,999) и тестом хи-квадрат.

Кто-нибудь может объяснить эту аномалию в больших количествах?

Я использовал следующий код, чтобы получить числа

    [Timeout(TestTimeout.Infinite), TestMethod]
    public void TestMethodStatistic()
    {
        Dictionary<long, long> appearances = new Dictionary<long, long>();
        UInt64 tenBillion = 10000000000;

        for (UInt64 i = 0; i < 10000000; i++)
        {
            UInt64 random = GetSIngleRandomNumberInternal() % tenBillion;
            UInt64 bucket = random /10000000;

            if (!appearances.ContainsKey(Convert.ToInt64(bucket)))
            {
                appearances.Add(Convert.ToInt64(bucket), 0);
            }
            appearances[Convert.ToInt64(bucket)]++;
        }
        string results = "\nBucket Id\tcount\n";
        foreach (var appearance in appearances)
        {
            results += appearance.Key+"\t"+ appearance.Value +"\n";
        }
        File.AppendAllText(@"C:\Result.txt",results);
    }

    private RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();

    private UInt64 GetSIngleRandomNumberInternal()
    {
        byte[] randomNumBytes = new byte[sizeof(UInt64)];
        rngCsp.GetBytes(randomNumBytes);


        return BitConverter.ToUInt64(randomNumBytes, 0);
    }

Возьмите файл Result.txt и скопируйте содержимое в Excel. создайте таблицу и добавьте 2 столбца. 1 - ожидаемый результат со значением 100000, а второй - критерий хи-квадрат, значение которого равно "= CHISQ.TEST ([count], [[Ожидается]])"

когда значение критерия хи-квадрат меньше 0,1, возникает проблема.

Ответы на вопрос(1)

Ваш ответ на вопрос