PDA

Visualizza la versione completa : funzione RAND() codice


radamirez
07-08-2016, 22:03
Salve volevo chiedervi se sapete dove trovare lo sviluppo della funzione rand () in C o C++ perch volevo vedere come fatta
su clusplusreference non c'
grazie

semplice77
07-08-2016, 22:27
in ASM ?

radamirez
08-08-2016, 13:36
in ASM ?

Il mio libro fa intendere che la funzione rand() gia implementata da qualcuno e la si usa includendo <cstdlib>. Ora io so come si usa, ma volevo sapere cosa f, lo sviluppo della funzione tipo:
int rand() {....}
giusto per vedere se riuscivo a capirla.

ASM il linguaggio macchina giusto? in caso di si , va bene pure il codice in linguaggio macchina.

grazie mille per la risposta

semplice77
08-08-2016, 16:21
ASM il linguaggio ASSEMBLY (un livello superiore al linguaggio macchina e un livello inferiore al linguaggio di alto livello).
Nella libreria che vai a richiamare, li la trovi.

oregon
08-08-2016, 16:51
Esistono diverse implementazioni, ad esempio

http://opensource.apple.com/source/Libc/Libc-594.9.4/stdlib/FreeBSD/rand.c

http://research.microsoft.com/en-us/um/redmond/projects/invisible/src/crt/rand.c.htm

semplice77
08-08-2016, 17:51
Ah ok, pensavo fossi alla ricerca della implementazione "prima" da cui discendevano tutte le altre.

radamirez
09-08-2016, 16:56
Raga praticamente prende il tempo in secondi come seed poi ci moltiplica un numero gigante ce ne somma un altro , divide e poi fa il modulo e lo ritorna, tutto qui?
in ams invece per vederlo come faccio ?
grazie raga ero curioso di vedere come era fatta sta funzione

MItaly
09-08-2016, 22:26
Raga praticamente prende il tempo in secondi come seed poi ci moltiplica un numero gigante ce ne somma un altro , divide e poi fa il modulo e lo ritorna, tutto qui?
S, esistono diversi algoritmi di generazione di numeri casuali, anche se di norma rand() implementata tramite un LCG (https://en.wikipedia.org/wiki/Linear_congruential_generator).


in ams invece per vederlo come faccio ?
Con che toolchain lavori? Comunque semplicemente il risultato della compilazione di una qualche variante del codice mostrato sopra.

Loading