Jest to polecenie, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
ent - test sekwencji liczb pseudolosowych
STRESZCZENIE
ent [opcje] [plik]
OPIS
Logo ENT
ent wykonuje różne testy na strumieniu bajtów filet (lub standardowe wejście, jeśli nie
filet jest określony) i generuje dane wyjściowe na standardowym wyjściu; Na przykład:
Entropia = 7.980627 bitów na znak.
Optymalna kompresja zmniejszyłaby rozmiar
tego pliku zawierającego 51768 znaków o 0 procent.
Rozkład chi-kwadrat dla 51768 próbek wynosi 1542.26 i jest losowy
przekroczy tę wartość w 0.01% przypadków.
Średnia arytmetyczna wartość bajtów danych wynosi 125.93 (127.5 = losowo).
Wartość Monte Carlo dla Pi wynosi 3.169834647 (błąd 0.90 procent).
Współczynnik korelacji szeregowej wynosi 0.004249 (całkowicie nieskorelowany = 0.0).
Obliczone wartości są następujące:
ENTROPIA
Gęstość informacji w zawartości pliku, wyrażona jako liczba bitów na
postać. Powyższe wyniki, które wynikają z przetwarzania skompresowanego pliku obrazu
JPEG wskazują, że plik jest niezwykle gęsty pod względem informacji – zasadniczo losowy. Stąd,
Jest mało prawdopodobne, że kompresja pliku zmniejszy jego rozmiar. Natomiast kod źródłowy C
program ma entropię około 4.9 bitów na znak, co wskazuje na optymalną
kompresja pliku zmniejszyłaby jego rozmiar o 38%. [Hamming, s. 104-108]
CHI-kwadrat TESTOWANIE
Test chi-kwadrat jest najczęściej stosowanym testem losowości danych
niezwykle wrażliwy na błędy w generatorach sekwencji pseudolosowych. Chi-kwadrat
dystrybucja jest obliczana dla strumienia bajtów w pliku i wyrażana jako
liczba bezwzględna i procent, który wskazuje, jak często występuje naprawdę losowa sekwencja
przekroczyłaby obliczoną wartość. Interpretujemy procent jako stopień, w jakim
Podejrzewa się, że testowana sekwencja jest nielosowa. Jeśli odsetek jest większy niż 99% lub
mniej niż 1%, sekwencja prawie na pewno nie jest przypadkowa. Jeśli odsetek jest pomiędzy
99% do 95% lub od 1% do 5%, sekwencja jest podejrzana. Procenty od 90% do
95%, 5% i 10% wskazuje, że sekwencja jest „prawie podejrzana”. Pamiętaj, że nasz plik JPEG,
chociaż jest bardzo gęsty pod względem informacji, nie jest przypadkowy, jak wykazał test chi-kwadrat.
Zastosowanie tego testu do wyników różnych generatorów sekwencji pseudolosowych polega na tym, że:
ciekawy. 8 bitów niższego rzędu zwracanych przez standardowy Unix rand(1) funkcja, dla
przykładowo, daje:
Rozkład chi-kwadrat dla 500000 próbek wynosi 0.01 i jest losowy
przekroczy tę wartość w 99.99% przypadków.
Podczas gdy ulepszony generator [Park & Miller] raportuje:
Rozkład chi-kwadrat dla 500000 próbek wynosi 212.53 i jest losowy
przekroczy tę wartość w 95.00% przypadków.
Zatem standardowy generator uniksowy (lub przynajmniej zwracane przez niego bajty o niższym znaczeniu) to
niedopuszczalnie nielosowy, podczas gdy ulepszony generator jest znacznie lepszy, ale nadal
wystarczająco nielosowe, aby powodować problemy w przypadku wymagających aplikacji. Porównaj oba
te generatory oprogramowania z wynikiem chi-kwadrat prawdziwej utworzonej sekwencji losowej
poprzez synchronizację wydarzeń rozpadu radioaktywnego[1]:
Rozkład chi-kwadrat dla 32768 próbek wynosi 237.05 i jest losowy
przekroczy tę wartość w 75.00% przypadków.
Więcej informacji na temat testu chi-kwadrat można znaleźć w [Knuth, s. 35-40]. Interaktywny chi-
kalkulator kwadratowy[2] jest dostępny na tej stronie.
ARYTMETYKA MEAN
Jest to po prostu wynik zsumowania wszystkich bajtów (bitów, jeśli -b opcja jest określona) w
pliku i podzielenie przez długość pliku. Jeśli dane są zbliżone do losowych, tak powinno być
około 127.5 (0.5 za -b wyjście opcji). Jeśli średnia odbiega od tej wartości, wartości
są stale wysokie lub niskie.
GÓRA CARLO WARTOŚĆ DLA PI
Każda kolejna sekwencja sześciu bajtów jest używana jako 24-bitowe współrzędne X i Y w obrębie a
kwadrat. Jeśli odległość losowo wygenerowanego punktu jest mniejsza niż promień a
okrąg wpisany w kwadrat, za „trafienie” uważa się sekwencję sześciobajtową. The
procent trafień można wykorzystać do obliczenia wartości Pi. W przypadku bardzo dużych strumieni (this
przybliżenie zbiega się bardzo powoli), wartość zbliży się do prawidłowej wartości Pi, jeśli
kolejność jest zbliżona do losowej. Plik o wielkości 32768 bajtów utworzony w wyniku rozpadu radioaktywnego dał:
Wartość Monte Carlo dla Pi wynosi 3.139648438 (błąd 0.06 procent).
SERYJNY KORELACJA WSPÓŁCZYNNIK
Ilość ta mierzy stopień, w jakim każdy bajt w pliku zależy od poprzedniego
bajt. W przypadku sekwencji losowych ta wartość (która może być dodatnia lub ujemna) będzie wynosić:
oczywiście blisko zera. Nielosowy strumień bajtów, taki jak program C, zwróci numer seryjny
współczynnik korelacji rzędu 0.5. Szalenie przewidywalne dane, takie jak nieskompresowane
mapy bitowe będą wykazywać współczynniki korelacji szeregowej zbliżające się do 1. Patrz [Knuth, s. 64-65]
by uzyskać więcej szczegółów.
OPCJE
-b Dane wejściowe są traktowane jako strumień bitów, a nie 8-bitowych bajtów. Statystyka
zgłaszane odzwierciedlają właściwości strumienia bitów.
-c Wydrukuj tabelę z liczbą wystąpień każdego możliwego bajtu (lub bitu, jeśli -b
opcja jest również określona) wartość i ułamek całego pliku utworzonego przez
ta wartość. Znaki drukowalne z zestawu znaków ISO-8859-1 (Latin-1) to
pokazane wraz z ich dziesiętnymi wartościami bajtów. W niekrótkim trybie wyjściowym wartości with
wystąpienia zerowe nie są drukowane.
-f Złóż wielkie litery na małe przed obliczeniem statystyk. Składanie zostało zakończone
w oparciu o zestaw znaków ISO-8859-1 (Latin-1), z poprawnie akcentowanymi literami
obrobiony.
-t Tryb zwięzły: dane wyjściowe są zapisywane w formacie wartości oddzielonych przecinkami (CSV), odpowiednim dla
ładowanie do arkusza kalkulacyjnego i łatwe odczytywanie w dowolnym języku programowania. Zobacz zwięzły
Poniżej znajdziesz dodatkowe szczegóły w formacie wyjściowym trybu.
-u Wydrukuj informacje o sposobie dzwonienia.
Używaj ent online, korzystając z usług onworks.net