+
9.6. casuale - Genera numbers¶ pseudo-casuale Questo modulo implementa pseudo-casuali generatori di numeri per varie distribuzioni. Per gli interi, selezione divisa da un intervallo. Per le sequenze, selezione uniforme di un elemento casuale, una funzione per generare una permutazione casuale di un elenco sul posto, e una funzione per campionamento casuale senza sostituzione. Sulla linea vera e propria, ci sono funzioni per calcolare uniforme, normale (gaussiana), lognormale, negativo esponenziale, gamma, e distribuzione beta. Per generare distribuzioni di angoli, la distribuzione von Mises è disponibile. Quasi tutte le funzioni del modulo dipendono dalla funzione di base casuale (). che genera un galleggiante a caso in modo uniforme nella gamma semi-aperto [0.0, 1.0). Python usa il Mersenne Twister come generatore principale. Produce carri precisione 53 bit ed ha un periodo di 2 ** 19.937-1. L'implementazione sottostante in C è sia veloce che threadsafe. Il Mersenne Twister è uno dei generatori di numeri casuali più ampiamente testate esistenti. Tuttavia, essendo completamente deterministico, non è adatto per tutti gli scopi, ed è completamente inutilizzabile per scopi crittografici. Le funzioni fornite da questo modulo sono in realtà i metodi bound di un'istanza nascosta della classe random. Random. È possibile creare un'istanza le proprie istanze di caso per ottenere generatori che non condividono stato. Questo è particolarmente utile per programmi multi-threaded, creando differenti istanze di Random per ogni thread, e utilizzando il metodo jumpahead () per rendere più probabile che le sequenze generate in ogni thread non si sovrappongano. Classe casuale può anche essere derivata se si desidera utilizzare un generatore di base diversa della propria ideazione: in tal caso, ignorare il casuale (). seme (). GetState (). SetState () e jumpahead () metodi. Facoltativamente, un nuovo generatore in grado di fornire un getrandbits (metodo) - questo permette randrange () per produrre le selezioni su un arbitrariamente grande gamma. Nuovo nella versione 2.4: Il metodo getrandbits (). Come esempio di derivazione, il modulo random fornisce la classe WichmannHill che implementa un generatore alternativo in puro Python. La classe fornisce un modo compatibile con le versioni precedenti di riprodurre i risultati di precedenti versioni di Python, che ha utilizzato l'algoritmo Wichmann-Hill come generatore principale. Si noti che questo generatore Wichmann-Hill non può più essere negativa: suo periodo è troppo breve per gli standard contemporanei, e la sequenza generata è nota per fallire alcuni test casualità rigorosi. Vedere i riferimenti sotto per una recente variante che ripara questi difetti. Modificato nella versione 2.3: Mersenne Twister sostituito Wichmann-Hill come generatore di default. Il modulo random fornisce anche la classe SystemRandom che utilizza la funzione di sistema os. urandom () per generare numeri casuali da fonti fornite dal sistema operativo. I generatori pseudo-casuali di questo modulo non deve essere utilizzato per scopi di sicurezza. Utilizzare os. urandom () o SystemRandom se avete bisogno di una pseudo-casuale crittograficamente sicuro generatore numero. Inizializzare il generatore di numeri casuali di base. L'argomento facoltativo x può essere qualsiasi oggetto hashabile. Se x viene omesso o Nessuno. viene utilizzato ora di sistema corrente; ora corrente del sistema viene anche utilizzato per inizializzare il generatore quando il modulo viene importato prima. Se le fonti casualità sono forniti dal sistema operativo, essi sono utilizzati al posto del tempo di sistema (vedi la funzione os. urandom () per i dettagli su disponibilità). Se viene dato un oggetto hashable, i risultati deterministici sono assicurati solo quando PYTHONHASHSEED è disabilitato. Modificato nella versione 2.4: in precedenza, le risorse del sistema operativo non sono stati utilizzati. Restituisce un oggetto che lo stato interno corrente del generatore. Questo oggetto può essere passato a setstate () per ripristinare lo stato. Nuovo nella versione 2.1. Modificato nella versione 2.6: valori di stato prodotti in Python 2.6 non possono essere caricati in versioni precedenti. Stato avrebbe dovuto essere ottenuto da una precedente chiamata a getstate (). e setstate () ripristina lo stato interno del generatore a quello che era al tempo GetState () è stato chiamato. Nuovo nella versione 2.1. Cambiare lo stato interno in uno differente e probabilmente lontano dallo stato corrente. n è un numero intero non negativo che viene usato per rimescolare il vettore di stato corrente. Questo è molto utile nei programmi multi-threaded, in collaborazione con più istanze della classe Random: setstate () o di semi () può essere utilizzato per forzare tutte le istanze nello stesso stato interno, e quindi jumpahead () può essere utilizzato per la forza membri le istanze 'distanti. Nuovo nella versione 2.1. Modificato nella versione 2.3: Invece di saltare ad uno specifico stato, n passi avanti, jumpahead (n) salta ad un altro stato probabilmente separato da molti passi. Restituisce un int lungo pitone con k bit casuali. Questo metodo viene fornito con il generatore di Mersenne Twister e alcuni altri generatori può anche fornire come una parte facoltativa delle API. Se disponibile, getrandbits () consente randrange () per gestire arbitrariamente grandi catene. Nuovo nella versione 2.4. Funzioni per gli interi: casuale. randrange (stop) ¶ casuale. randrange (start. fermare [. step]) Restituisce un elemento scelto a caso dalla distanza (start, stop, step). Ciò equivale a scelta (range (start, stop, step)). ma in realtà non costruire un oggetto Range. Nuovo nella versione 1.5.2. Restituisce un intero casuale N tale che un & lt; = N & lt; = b. Funzioni per le sequenze: Restituisce un elemento casuale della sequenza non vuota seq. Se seq è vuota, solleva IndexError. Mescolate la sequenza x in atto. L'argomento opzionale casuale è una funzione 0-argomento che restituisce un float casuale [0.0, 1.0); Per impostazione predefinita, questa è la funzione random (). Si noti che per anche piuttosto piccola len (x). il numero totale di permutazioni di x è maggiore del periodo di maggior generatori di numeri casuali; questo implica che la maggior parte permutazioni di una lunga sequenza possono mai essere generati. Restituisce una lista di lunghezza k di elementi distinti, scelti dalla sequenza popolazione. Usato per il campionamento casuale senza sostituzione. Nuovo nella versione 2.3. Restituisce una nuova lista contenente gli elementi da parte della popolazione, lasciando inalterata la popolazione originaria. La lista risultante è in ordine di selezione in modo che tutte le sotto-sezioni saranno anche campioni casuali validi. Questo permette di vincitori della lotteria (il campione) per essere partizionato in Gran Premio e vincitori del posto secondo (le sotto liste). I membri della popolazione non devono essere hashable o unico. Se la popolazione contiene ripetizioni, ogni occorrenza è una possibile selezione del campione. Per scegliere un campione da una serie di numeri interi, utilizzare un oggetto xrange () come argomento. Ciò è particolarmente veloce ed efficiente per il campionamento da una grande popolazione: campione (xrange (10000000), 60). Le seguenti funzioni generano specifiche distribuzioni a valori reali. Parametri di funzione sono chiamati dopo le variabili corrispondenti equazione della distribuzione, usati nella pratica matematica comune; la maggior parte di queste equazioni si possono trovare in qualsiasi testo statistiche. Restituisce il prossimo numero in virgola mobile casuale nell'intervallo [0.0, 1.0). Restituisce un numero casuale in virgola mobile N tale che un & lt; = N & lt; = B per un & lt; = b and b & lt; = N & lt; = a b & lt; a. Il valore finale punto b può o non può essere compreso nel range seconda virgola mobile arrotondamento nell'equazione a + (b-a) * random (). Restituisce un numero in virgola mobile casuale N tale che a basso & lt; = N & lt; = alta e con la modalità specificata tra questi limiti. Il valore di default bassa e alta limiti di zero e uno. L'argomento predefinito modalità per il punto medio tra i limiti, dando una distribuzione simmetrica. Nuovo nella versione 2.6. distribuzione beta. Le condizioni sui parametri sono alpha & gt; 0 e beta & gt; 0. I valori restituiti variano tra 0 e 1. casuale. expovariate (lambd) ¶ Distribuzione esponenziale. lambd è 1.0 diviso la media desiderata. Dovrebbe essere diverso da zero. (Il parametro sarebbe chiamato "lambda", ma che è una parola riservata in Python.) I valori restituiti vanno da 0 a infinito positivo se lambd è positivo, e da infinito negativo a 0 se lambd è negativo. distribuzione gamma. (Non funzione gamma!) Le condizioni sui parametri sono alpha & gt; 0 e beta & gt; 0. La funzione di distribuzione di probabilità è: distribuzione gaussiana. mu è la media, e sigma è la deviazione standard. Questo è leggermente più veloce rispetto alla funzione normalvariate () definito di seguito. Log distribuzione normale. Se si prende il logaritmo naturale di questa distribuzione, si otterrà una distribuzione normale con media mu e deviazione standard sigma. mu può avere ogni valore mentre sigma deve essere maggiore di zero. Distribuzione normale. mu è la media, e sigma è la deviazione standard. mu è l'angolo medio, espresso in radianti fra 0 e 2 * pi. e kappa è il parametro di concentrazione, che deve essere maggiore o uguale a zero. Se kappa è uguale a zero, questa distribuzione riduce ad un angolo casuale costante nell'intervallo tra 0 e 2 * pi. casuale. paretovariate (alpha) ¶ distribuzione di Pareto. alpha è il parametro di forma. casuale. weibullvariate (alfa. beta) ¶ distribuzione di Weibull. alpha è il parametro di scala e beta il parametro di forma. Classe che implementa l'algoritmo Wichmann-Hill come generatore principale. Ha tutti gli stessi metodi a caso, più il metodo whseed () descritto di seguito. Poiché questa classe è implementata in puro Python, non è threadsafe e può richiedere serrature tra le chiamate. Il periodo del generatore è 6.953.607.871.644 che è abbastanza piccolo da richiedere attenzione che due sequenze casuali indipendenti non si sovrappongano. Questo è obsoleto, supportato per la compatibilità a livello di bit con le versioni di Python precedenti alla 2.1. Vedere seme () per i dettagli. whseed () non garantisce che gli argomenti interi distinti resa stati interni distinti, e può produrre non più di circa 2 ** 24 stati interni distinti in tutto. Class che utilizza la funzione os. urandom () per generare numeri casuali da fonti fornite dal sistema operativo. Non disponibile su tutti i sistemi. Non si basa sullo stato del software e le sequenze non sono riproducibili. Metodi Di conseguenza, il seme () e jumpahead () non hanno alcun effetto e vengono ignorati. Il GetState () e setstate () metodi sollevano NotImplementedError se chiamati. Nuovo nella versione 2.4. Esempi di utilizzo di base: M. Matsumoto e T. Nishimura, "Mersenne Twister: A 623-dimensionalmente equidistributed pseudocasuali uniforme generatore di numeri", transazioni ACM sulla modellazione e simulazione del computer Vol. 8, No. 1, Gennaio pp.3-30 1998. Wichmann, B. A. & amp; Hill, I. D. "Algoritmo AS 183: un pseudo-generatore di numeri casuali efficiente e portatile", Statistica Applicata 31 (1982) 188-190. Complementare-Moltiplicare-con-Carry ricetta di un generatore di numeri casuali alternativa compatibile con un lungo periodo e le operazioni di aggiornamento relativamente semplici.
![](https://i.ytimg.com/vi/0_b5EAxGMjs/maxresdefault.jpg)
No comments:
Post a Comment