Questo è il comando ent che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici postazioni di lavoro online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
ent - test di sequenza numerica pseudocasuale
SINOSSI
ent [opzioni] [file]
DESCRIZIONE
Logo ORL
ent esegue una serie di test sul flusso di byte in filetto (o input standard se no
filetto è specificato) e produce output su standard output; per esempio:
Entropia = 7.980627 bit per carattere.
La compressione ottimale ridurrebbe le dimensioni
di questo file di 51768 caratteri dello 0 percento.
La distribuzione del chi quadrato per 51768 campioni è 1542.26 e casualmente
supererebbe questo valore lo 0.01% delle volte.
Il valore medio aritmetico dei byte di dati è 125.93 (127.5 = casuale).
Il valore Monte Carlo per Pi è 3.169834647 (errore 0.90 percento).
Il coefficiente di correlazione seriale è 0.004249 (totalmente non correlato = 0.0).
I valori calcolati sono i seguenti:
ENTROPIA
La densità di informazioni del contenuto del file, espressa come numero di bit per
carattere. I risultati di cui sopra, risultanti dall'elaborazione di un file immagine compresso con
JPEG, indica che il file è estremamente denso di informazioni, essenzialmente casuale. Quindi,
è improbabile che la compressione del file riduca le sue dimensioni. Al contrario, il codice sorgente C di
il programma ha un'entropia di circa 4.9 bit per carattere, indicando che ottimale
la compressione del file ne ridurrebbe le dimensioni del 38%. [Hamming, pp. 104-108]
CHI PIAZZA TEST
Il test chi-quadrato è il test più comunemente usato per la casualità dei dati, ed è
estremamente sensibile agli errori nei generatori di sequenze pseudocasuali. Il chi quadrato
la distribuzione è calcolata per il flusso di byte nel file ed espressa come an
numero assoluto e una percentuale che indica con quale frequenza una sequenza veramente casuale
supererebbe il valore calcolato. Interpretiamo la percentuale come il grado in cui il
si sospetta che la sequenza testata non sia casuale. Se la percentuale è maggiore del 99% o
meno dell'1%, la sequenza non è quasi certamente casuale. Se la percentuale è compresa tra
99% e 95% o tra 1% e 5%, la sequenza è sospetta. Percentuali tra 90% e
95% e 5% e 10% indicano che la sequenza è "quasi sospetta". Nota che il nostro file JPEG,
sebbene molto denso di informazioni, è tutt'altro che casuale come rivelato dal test chi-quadrato.
Applicare questo test all'output di vari generatori di sequenze pseudocasuali è
interessante. Gli 8 bit di ordine inferiore restituiti dallo standard Unix rand(1) funzione, per
esempio, produce:
La distribuzione del chi quadrato per 500000 campioni è 0.01 e casualmente
supererebbe questo valore lo 99.99% delle volte.
Mentre un generatore migliorato [Park & Miller] riporta:
La distribuzione del chi quadrato per 500000 campioni è 212.53 e casualmente
supererebbe questo valore lo 95.00% delle volte.
Pertanto, il generatore Unix standard (o almeno i byte di ordine inferiore che restituisce) è
inaccettabilmente non casuale, mentre il generatore migliorato è molto meglio ma comunque
sufficientemente non casuale da destare preoccupazione per applicazioni impegnative. Contrasta entrambi
questi generatori di software con il risultato chi-quadrato di una vera sequenza casuale creata
cronometrando gli eventi di decadimento radioattivo[1]:
La distribuzione del chi quadrato per 32768 campioni è 237.05 e casualmente
supererebbe questo valore lo 75.00% delle volte.
Vedere [Knuth, pp. 35-40] per maggiori informazioni sul test chi-quadrato. Un chi-
calcolatrice quadrata[2] è disponibile su questo sito.
ARITMETICA SIGNIFICARE
Questo è semplicemente il risultato della somma di tutti i byte (bit se il -b l'opzione è specificata) in
il file e dividendo per la lunghezza del file. Se i dati sono quasi casuali, questo dovrebbe essere
circa 127.5 (0.5 per -b uscita opzionale). Se la media si discosta da questo valore, i valori
sono costantemente alti o bassi.
MONTE CARLO VALORE PER PI
Ogni sequenza successiva di sei byte viene utilizzata come coordinate X e Y a 24 bit all'interno di a
quadrato. Se la distanza del punto generato casualmente è minore del raggio di a
cerchio inscritto all'interno del quadrato, la sequenza di sei byte è considerata un "hit". Il
la percentuale di risultati può essere utilizzata per calcolare il valore di Pi. Per flussi molto grandi (questo
approssimazione converge molto lentamente), il valore si avvicinerà al valore corretto di Pi se
la sequenza è quasi casuale. Un file di 32768 byte creato dal decadimento radioattivo ha prodotto:
Il valore Monte Carlo per Pi è 3.139648438 (errore 0.06 percento).
SERIAL CORRELAZIONE COEFFICIENTE
Questa quantità misura la misura in cui ogni byte nel file dipende dal precedente
byte. Per le sequenze casuali, questo valore (che può essere positivo o negativo) sarà, of
certo, essere vicino allo zero. Un flusso di byte non casuale come un programma C produrrà un seriale
coefficiente di correlazione dell'ordine di 0.5. Dati estremamente prevedibili come quelli non compressi
le bitmap mostreranno coefficienti di correlazione seriale prossimi a 1. Vedi [Knuth, pp. 64-65]
per ulteriori dettagli.
VERSIONI
-b L'input viene trattato come un flusso di bit anziché di byte a 8 bit. Statistiche
riportati riflettono le proprietà del flusso di bit.
-c Stampa una tabella del numero di occorrenze di ogni possibile byte (o bit, se -b
è anche specificata l'opzione) value, e la frazione del file complessivo composta da
quel valore. I caratteri stampabili nel set di caratteri ISO-8859-1 (Latin-1) sono
mostrati insieme ai loro valori di byte decimali. In modalità di output non conciso, i valori con
zero occorrenze non vengono stampate.
-f Ripiega le lettere maiuscole in minuscole prima di calcolare le statistiche. La piegatura è fatta
basato sul set di caratteri ISO-8859-1 (latino-1), con lettere accentate correttamente
trasformati.
-t Modalità concisa: l'output è scritto in formato Comma Separated Value (CSV), adatto per
caricamento in un foglio di calcolo e facilmente leggibile da qualsiasi linguaggio di programmazione. Vedi conciso
Formato di output della modalità di seguito per ulteriori dettagli.
-u Stampa le informazioni su come chiamare.
Utilizzare ent online utilizzando i servizi onworks.net