Attualmente sto scrivendo un'app in python che ha bisogno di generare grandi quantità di numeri casuali, VELOCE. Attualmente ho uno schema che usa numpy per generare tutti i numeri in un batch gigante (circa ~ 500.000 alla volta). Anche se questo sembra essere più veloce dell'implementazione di Python. Ho ancora bisogno di andare più veloce. Qualche idea? Sono aperto a scriverlo in C e incorporarlo nel programma o fare w/e ci vuole.Il modo più veloce per generare oltre 1.000.000 di numeri casuali in python
vincoli sui numeri casuali:
- Un insieme di 7 numeri che possono tutti hanno diversi limiti:
- ad esempio: [0-X1, X2 0-, 0-X3, 0- X4, X5 0-, 0-X6, 0-X7]
- Attualmente sto generando una lista di 7 numeri con valori casuali da [0-1) poi moltiplicando per [X1..X7]
- Un insieme di 13 numeri che sommano tutti a 1
- Attualmente solo la generazione di 13 numeri quindi dividendo per la loro somma
Tutte le idee? Il pre calcolo di questi numeri e la loro memorizzazione in un file lo rendono più veloce?
Grazie!
È praticamente una garanzia che passare a I/O su disco non lo renderà più veloce, quindi l'approccio di archiviazione dei file non è probabilmente quello che si desidera. –
qual è l'intervallo di numeri? Presumo che siano a virgola mobile? quanto più veloce devi andare? di quanta casualità hai bisogno? puoi ottenere generando N/7 numeri e ruotandoli? m – Anycorn
Quanto è importante che quei numeri vengano generati casualmente quando ne hai bisogno? Sarebbe un'opzione per memorizzare forse 5 volte più numeri casuali generati in precedenza e basta selezionare un insieme casuale di quelli? – poke