![]() |
#32 |
Python Ambassador
Master
|
![]() Sad sam upravo generisao vektor od 2.000.000 celih pseudo-slučajnih brojeva sa opsegom [0..2^32-1] pomoću ove linije koda u MATLAB-u:
Kôd:
brojevi = randint(1, 2e6, 2^32); Nešto sam malo kopao po MATLAB-ovom helpu ali nisam uspeo da nađem funkciju koja uklanja istovetne vrednosti iz vektora, tako da mogu da dam sledeći algoritam (mrzelo me da pišem kod) koji može biti prilično brži od vaših IMHO: 1. Pokrenemo MATLAB i u definišemo sledeće promenljive: broj_kodova (broj jedinstvenih kodova koje želimo da generišemo), multiplikator (generišemo s njim "rezervne kodove", uzmimo da je vrednost 2) i faktor_ubrzanja (ubrzava dolazak do rešenja tako što poništava efekat nejedinstvenih kodova - uzmimo za vrednost 2) 2. Izvršimo Kôd:
podaci = sprintf('%x\n', randint(1, broj_kodova*multiplikator, 2^32)); 3. Izvršimo sledeći kod: Kôd:
brojac = 1; delta = broj_kodova; 5. Uradimo bulk insert podaci(brojac:delta+brojac-1, :) kodova u bazu (MATLAB podržava da se bulk insert izvrši jednim pozivom insert() funkcije) 6. Učitamo novu vrednost promenljive broj_jedinstvenih_kodova 7. Kôd:
brojac = delta+brojac; delta = (broj_kodova - broj_jedinstvenih_kodova) * faktor_ubrzanja; 9. Iz view-a povadimo broj_kodova redova i to smestimo u neku tabelu/dump/neki-drugi-izvor-podataka. 10. Pokrenemo, protegnemo se, popijemo kaficu i gotovo ;) I have way too much free time on my hands :D
__________________
Python Ambassador of Serbia Poslednja izmena od Petar Marić : 02. 02. 2006. u 02:00. |
![]() |
![]() |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
random + mysql | mega023 | PHP | 9 | 09. 03. 2010. 16:08 |
random select na velikoj tabeli | kodi | SQL baze podataka - Sponzor: Baze-Podataka.net | 14 | 09. 04. 2008. 12:46 |
random koji favorizuje | kodi | Programiranje | 16 | 29. 04. 2007. 21:09 |
java.util.Random security | Ivan | Programiranje | 0 | 02. 01. 2007. 18:43 |
Random image - preraditi za flash... | headcutter | (X)HTML, JavaScript, DHTML, XML, CSS | 4 | 02. 09. 2005. 22:14 |