Come si genera un numero casuale compreso tra 0 e 1?c - generatore di numeri casuali
risposta
È possibile generare un numero pseudocasuale utilizzando stdlib.h. Semplicemente includere stdlib, quindi chiamare
double random_number = rand()/(double)RAND_MAX;
Per riferimento, questo darà valori in [0.0, 1.0], compresi entrambi 0.0 e 1.0. –
E, cosa più importante, molto probabilmente non sarà corretto (!) Ci sono molte implementazioni in cui il set [0.0, 1.0] contiene più di elementi RAND_MAX. (_In C, l'insieme [0.0, 1.0] è un insieme finito numerabile_) – MSalters
@MSalters, questo è un problema interessante, qualche idea su una soluzione? –
Supponendo OP vuole 0 o 1:
srand(time(NULL));
foo = rand() & 1;
Edit ispirato commento: Vecchi rand()
implementazioni avevano un difetto - i bit di ordine inferiore avuto periodi molto più brevi rispetto bit di ordine superiore, quindi l'uso di bit di basso ordine per tali implementazioni non è buono. Se si conosce l'implementazione rand()
soffre di questo difetto, utilizzare po 'di ordine superiore, in questo modo:
foo = rand() >> (sizeof(int)*8-1)
assumendo regolari architetture 8-bit-per-byte
man 3 drand48 è esattamente quello che hai chiesto per.
Il drand48() e erand48() restituiscono non negativo, doppia precisione, i valori in virgola mobile, distribuito uniformemente sull'intervallo [0,0, 1,0].
Questi si trovano in #include <stdlib.h>
su piattaforme UNIX. Tuttavia, non sono in ANSI C, quindi (ad esempio) non li troverai su Windows a meno che non porti la tua implementazione (ad esempio LibGW32C).
- 1. Generatore casuale di numeri casuali
- 2. Boost generatore di numeri casuali
- 3. Generatore di numeri casuali Crossplatform
- 4. Come funziona un generatore di numeri casuali?
- 5. Progettazione di un generatore di numeri casuali
- 6. Generatore casuale di numeri casuali di probabilità
- 7. Come funziona il generatore di numeri casuali di C#?
- 8. Generatore di numeri casuali uniforme thread-safe
- 9. Un buon generatore di numeri casuali per C
- 10. C++ 11 generatore di numeri casuali UIntType contraddizione
- 11. Generatore di numeri casuali in C# - valori univoci
- 12. Generatore di numeri casuali che genera numeri interi per Java
- 13. Numeri casuali con C#
- 14. C++ 11 numeri casuali
- 15. Numeri casuali in C
- 16. pacchetto (tipo cancella) un generatore di numeri casuali
- 17. thread-safe normale generatore di numeri casuali in F #
- 18. Modifica dell'intervallo di un generatore di numeri casuali uniforme
- 19. Generatore di numeri casuali comuni di iOS e Android
- 20. TI-84 Plus Algoritmo generatore di numeri casuali
- 21. Generatore di numeri casuali iOS in una nuova vista
- 22. Come si semina il generatore di numeri casuali in Swift?
- 23. Generatore di numeri casuali senza pregiudizi con uno polarizzato
- 24. Generatore di numeri casuali a distribuzione uniforme molto veloce
- 25. C# probabilita 'e numeri casuali
- 26. Come ottenere numeri casuali con il generatore errato
- 27. Come creare numeri casuali uniche da un dato generatore casuale
- 28. speciale di numeri casuali
- 29. Numeri casuali ponderati
- 30. aumentare biblioteca di numeri casuali, usare lo stesso generatore di numeri casuali per i diversi generatori variati
Davvero casuale o pseudocasuale? – tvanfosson
qual è la differenza? – tm1
@ tm1 - I numeri pseudocasuali si avvicinano solo alle proprietà dei numeri casuali e non sono necessariamente adatti per applicazioni che richiedono una casualità reale, come la crittografia. Vedi http://en.wikipedia.org/wiki/Pseudorandom_number_generator per una spiegazione. – tvanfosson