
Министерство образования и науки Российской Федерации
Санкт-Петербургский государственный политехнический университет
Отчёт по контрольной работе № 1
«Верификация двух ГСЧ равномерного распределения
по заданным тестам»
Выполнил А.А. Белый
Проверил В.В. Хромов
Постановка задачи
Произвести верификацию двух генераторов случайных чисел (ГСЧ) равномерного распределения. Для исследования характеристик ГСЧ использовать следующие тесты:
1.Тест на равномерность (тест частот) по критерию Пирсона
2. Тест на независимость (тест пар) по критерию согласия Пирсона
3.Тест на интервал апериодичности
Тестируемы ГСЧ
В данной работе тестируются два ГСЧ:
ГСЧ на языке Java – Random.
package com.company; import java.util.Random; public class Main { public static void main(String[] args) { // write your code here ; Random r = new Random(); Float[] arr = new Float[100]; for(int i = 0; i < arr.length; i++){ arr[i] = r.nextFloat(); System.out.println(arr[i]); } } }
Функция =СЛЧИС() в приложении Microsoft Office Excel 2013
Исследование ГСЧ Random в языке программирования Java
Объём выборки =100
Интервал = [0;1]
0.29148346
0.05189997
0.5677527
0.77767116
0.38213062
0.63887054
0.029285192
0.62738943
0.65716624
0.08814627
0.26988477
0.8115618
0.43920594
0.72828835
0.46858418
0.5933271
0.074415386
0.44964325
0.036635578
0.30225706
0.1729089
0.8253541
0.22310323
0.6569113
0.56684035
0.46767622
0.9637907
0.889589
0.09785771
0.70819104
0.07854617
0.28062832
0.67524767
0.69123596
0.45174712
0.6310097
0.8523755
0.5163023
0.5622471
0.4547856
0.5622773
0.6856272
0.74918073
0.23061597
0.25946802
0.53915626
0.1363129
0.21620029
0.92578644
0.7750593
0.80824566
0.98053545
0.6206359
0.44773233
0.8955511
0.65471613
0.16314965
0.8475354
0.8321956
0.7285474
0.31408608
0.441347
0.48749727
0.14183187
0.43274653
0.087427676
0.82698077
0.12819415
0.98863137
0.23227566
0.54314816
0.286233
0.7442585
0.9044454
0.9302893
0.2762723
0.6455463
0.39713258
0.50954306
0.29777497
0.9759994
0.3872736
0.28466392
0.5974752
0.68287164
0.38666385
0.40912694
0.024475992
0.7653547
0.32598037
0.7457411
0.4970913
0.5401381
0.40455705
0.7158673
0.91633284
0.5475067
0.21936059
0.772322
0.8700461
Характеристики случайного распределения чисел:
Математическое ожидание |
Дисперсия |
Скошенность |
Эксцесс |
0,5179499
|
0,0717607
|
-0,109549316219015 |
-1,01367229985103 |
Вариационный ряд (Min> Max)
0,0244760 |
0,0292852 |
0,0366356 |
0,0519000 |
0,0744154 |
0,0785462 |
0,0874277 |
0,0881463 |
0,0978577 |
0,1281942 |
0,1363129 |
0,1418319 |
0,1631497 |
0,1729089 |
0,2162003 |
0,2193606 |
0,2231032 |
0,2306160 |
0,2322757 |
0,2594680 |
0,2698848 |
0,2762723 |
0,2806283 |
0,2846639 |
0,2862330 |
0,2914835 |
0,2977750 |
0,3022571 |
0,3140861 |
0,3259804 |
0,3821306 |
0,3866639 |
0,3872736 |
0,3971326 |
0,4045571 |
0,4091269 |
0,4327465 |
0,4392059 |
0,4413470 |
0,4477323 |
0,4496433 |
0,4517471 |
0,4547856 |
0,4676762 |
0,4685842 |
0,4874973 |
0,4970913 |
0,5095431 |
0,5163023 |
0,5391563 |
0,5401381 |
0,5431482 |
0,5475067 |
0,5622471 |
0,5622773 |
0,5668404 |
0,5677527 |
0,5933271 |
0,5974752 |
0,6206359 |
0,6273894 |
0,6310097 |
0,6388705 |
0,6455463 |
0,6547161 |
0,6569113 |
0,6571662 |
0,6752477 |
0,6828716 |
0,6856272 |
0,6912360 |
0,7081910 |
0,7158673 |
0,7282884 |
0,7285474 |
0,7442585 |
0,7457411 |
0,7491807 |
0,7653547 |
0,7723227 |
0,7750593 |
0,7776712 |
0,8082457 |
0,8115618 |
0,8253541 |
0,8269808 |
0,8321956 |
0,8475354 |
0,8523755 |
0,8700461 |
0,8895890 |
0,8955511 |
0,9044454 |
0,9163328 |
0,9257864 |
0,9302893 |
0,9637907 |
0,9759994 |
0,9805355 |
0,9886314 |
Минимум |
0,024475992 |
Максимум |
0,98863137 |
Тестирование на равномерность по критерию Пирсона
Все значения распределяются по 10-ти равномерным интервалам. Длина каждого интервала составляет 0,1.
№ п/п |
Интервал |
Количество попаданий |
Сумма |
Метрика похожести |
Ux2 |
|
0.0 – 0.1 |
9 |
100 |
0.1 |
6.6 |
|
0.1 – 0.2 |
5 |
2.5 |
||
|
0.2 – 0.3 |
13 |
0.9 |
||
|
0.3 – 0.4 |
7 |
0.9 |
||
|
0.4 - 0.5 |
13 |
0.9 |
||
|
0.5 – 0.6 |
12 |
0.4 |
||
|
0.6 – 0.7 |
12 |
0.4 |
||
|
0.7 – 0.8 |
11 |
0.1 |
||
|
0.8 – 0.9 |
10 |
0 |
||
|
0.9 - 1 |
8 |
0.4 |
Значения разделены на 10 интервалов, поэтому число степеней свободы k=10-1=9
Квантили распределения в зависимости от уровня значимости:
q |
0,1 |
0,05 |
0,01 |
X2 |
14,68 |
16,92 |
21,66 |
Сопоставление этих значений со значением Ux2 = 6,6 показывает, что имеет место равномерное распределение по критерию Пирсона.
Тестирование на независимость по критерию согласия Пирсона
Все случайные значения делятся на пары: одна пара включает в себя два соседних значения. Выборка 250-ти случайных чисел пар распределяется 25-ти интервалами. Длина каждого интервала составляет 0,2.
Интервал |
0.0-0.2 |
0.2-0.4 |
0.4-0.6 |
0.6-0.8 |
0.8-1.0 |
Сумма |
0.0-0.2 |
8 |
8 |
6 |
15 |
11 |
48 |
0.2-0.4 |
8 |
11 |
8 |
8 |
6 |
41 |
0.4-0.6 |
10 |
12 |
10 |
11 |
14 |
57 |
0.6-0.8 |
11 |
5 |
11 |
16 |
7 |
50 |
0.8-1.0 |
10 |
7 |
14 |
14 |
9 |
54 |
Сумма |
47 |
43 |
49 |
64 |
47 |
250 |
Значения разделены на 25 интервалов, поэтому число степеней свободы k=25-1=24.
Таблица метрики похожести:
Интервал |
0.0-0.2 |
0.2-0.4 |
0.4-0.6 |
0.6-0.8 |
0.8-1.0 |
Ux2 |
0.0-0.2 |
0,4 |
0,4 |
1,6 |
2,5 |
0,1 |
21,4 |
0.2-0.4 |
0,4 |
0,1 |
0,4 |
0,4 |
1,6 |
|
0.4-0.6 |
0 |
0,4 |
0 |
0,1 |
1,6 |
|
0.6-0.8 |
0,1 |
2,5 |
0,1 |
3,6 |
0,9 |
|
0.8-1.0 |
0 |
0,9 |
1,6 |
1,6 |
0,1 |
|
Сумма |
0,9 |
4,3 |
3,7 |
8,2 |
4,3 |
Квантили распределения в зависимости от уровня значимости:
q |
0,1 |
0,05 |
0,01 |
X2 |
33,19 |
36,41 |
42,97 |
Сопоставление этих значений со значением Ux2=21,4 показывает, что по критерию согласия Пирсона случайные величины независимы.
Тестирование на интервал апериодочности
Зафиксируем несколько случайных чисел:
0.53915626
0.1363129
0.21620029
0.92578644
0.7750593
Запустим ГСЧ на час и проверим, встретятся ли эти числа дважды.
За 1 час работы ГСЧ ни одно из зафиксированных нами случайных чисел не встретилось дважды.
Исследование функции генерации случайных чисел в Excel =СЛЧИС()
0,843942309
0,569804223
0,32372107
0,4191764
0,351290599
0,475484461
0,328312882
0,778100646
0,133705823
0,369487572
0,289266013
0,38211246
0,566223586
0,342686853
0,07075362
0,489615713
0,207615729
0,447982717
0,720380565
0,025923065
0,916545768
0,586596792
0,448948604
0,468476489
0,07897392
0,774355627
0,807986577
0,450285259
0,851959743
0,639281205
0,087578609
0,020241057
0,215221807
0,522615823
0,936798168
0,200671549
0,020139008
0,221928649
0,592113837
0,839931788
0,437010141
0,435443058
0,423083056
0,895200406
0,264718823
0,360610492
0,669058363
0,909509699
0,966263945
0,351893647
0,991154701
0,472135087
0,97928221
0,786711295
0,902075529
0,228773206
0,542472784
0,648220182
0,456178521
0,597371098
0,254487551
0,14551004
0,498996484
0,684469292
0,650817982
0,055201964
0,484732888
0,144931579
0,074969892
0,929346689
0,571360563
0,237308301
0,150267313
0,682912716
0,401947888
0,285805556
0,207033298
0,849441427
0,873803592
0,911613931
0,655448672
0,167882329
0,49846669
0,651573378
0,965844852
0,07657834
0,174837781
0,27899651
0,967492108
0,956327041
0,294622774
0,820630275
0,901165791
0,040537463
0,755193581
0,623533612
0,817122225
0,391127629
0,4299748
0,120143648
Характеристика случайного распределения чисел:
Математическое ожидание |
Дисперсия |
Скошенность |
Эксцесс |
0,498158613 |
0,0826213745160214 |
0,0990744378434689 |
-1,13922276439548 |
Вариационный ряд (min->max)
0,020139008
0,020241057
0,025923065
0,040537463
0,055201964
0,07075362
0,074969892
0,07657834
0,07897392
0,087578609
0,120143648
0,133705823
0,144931579
0,14551004
0,150267313
0,167882329
0,174837781
0,200671549
0,207033298
0,207615729
0,215221807
0,221928649
0,228773206
0,237308301
0,254487551
0,264718823
0,27899651
0,285805556
0,289266013
0,294622774
0,32372107
0,328312882
0,342686853
0,351290599
0,351893647
0,360610492
0,369487572
0,38211246
0,391127629
0,401947888
0,4191764
0,423083056
0,4299748
0,435443058
0,437010141
0,447982717
0,448948604
0,450285259
0,456178521
0,468476489
0,472135087
0,475484461
0,484732888
0,489615713
0,49846669
0,498996484
0,522615823
0,542472784
0,566223586
0,569804223
0,571360563
0,586596792
0,592113837
0,597371098
0,623533612
0,639281205
0,648220182
0,650817982
0,651573378
0,655448672
0,669058363
0,682912716
0,684469292
0,720380565
0,755193581
0,774355627
0,778100646
0,786711295
0,807986577
0,817122225
0,820630275
0,839931788
0,843942309
0,849441427
0,851959743
0,873803592
0,895200406
0,901165791
0,902075529
0,909509699
0,911613931
0,916545768
0,929346689
0,936798168
0,956327041
0,965844852
0,966263945
0,967492108
0,97928221
0,991154701
Минимальное значение (min) |
Максимальное значение (max) |
0,020139008 |
0,9911547 |