NoTrace Security Forum

NoTrace Security Forum
Home | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Utenti | Download | cerca | faq | RSS | Security Chat
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 Off-Topic
 Altre Discussioni
 PROGRAMMAZIONE! funzione Random!
 Forum Bloccato
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'č:
Autore Discussione Precedente Discussione Discussione Successiva  

fremyd
Advanced Member


Cittā: Lecce _Pisa


958 Messaggi


Inserito il - 23/05/2005 : 12:47:12  Mostra Profilo
Ciao a tutti
era da parekkio ke nn scrivevo un post tutto mio
Dato ke nn c' č una sezione dedicata alla programmazione (sarebbe un' idea..) scrivo qui il mio probl:
ho bisogno d una spiegazione (nn troppo complessa) di come vengono implementate le funzioni random e randomize nei diversi linguaggi di Programmazione.. (in particolare in Java)
I concetti generici li conosco e ho anke visto le classi java.util.Random e Math.random() di Java, ma mi servirebbe una spiegazione abbastanza dettagliata (una bella spiegazione "a parole".. tipo i parametri da cui dipende il seme di generazione, un carrellata sull' algoritmo di implementazione, ecc..
Tutti programmatori eh! ...

ori
Moderatore


Cittā: Verona


2043 Messaggi

Inserito il - 23/05/2005 : 15:01:46  Mostra Profilo
Generalmente i generatori di numero pseudo-casuali sono basati su gruppi finiti della classi di equivalenza degli interi rispetto alla relazione d'equivalenza modulo (intero della divisione). Ad esempio, la Z/5Z indica il gruppo delle classi resto modulo 5, ossia [0], [1], [2], [3] e [4]. Il valore 123456 appartiene alla classe di [1], mentre il valore -1 e` in [4].

Il metodo implementato in Java, secondo quanto riportato dalla documentazione, e` quello del generatore lineare congruente, che e` definito come y_{i+1} = (A y_{i} + b) mod m. Scelte opportune di A, b e m garantiscono che vengano restituiti tutti i valori possibili prima di ripeterne uno. Il seme e` il valore di y_{0}, valore iniziale, e non dipende dall'implementazione. Serve solamente per riavere la stessa sequenza di numeri.

Generalmente il seme scelto corrisponde all'istante in cui viene eseguita l'inizializzazione del generatore di numeri pseudo-casuali (che non sono puramente casuali, ma non sono distinguibili da questi via analisi statistiche), in modo da avere sequenze sempre nuove. Se vuoi maggiori informazioni teoriche e applicative, dovresti prendere un testo che parla di algebra e uno di crittografia.
Torna all'inizio della Pagina

fremyd
Advanced Member


Cittā: Lecce _Pisa


958 Messaggi

Inserito il - 23/05/2005 : 19:10:59  Mostra Profilo
grazie ori era proprio quello ke volevo.. (ho studiato Algebra e i numeri modulo 5..
se nn kiedo troppo vorrei qualke link utile (nn tanto sulla parte di algebra ke gia conosco..
thx
Torna all'inizio della Pagina

ant21
Senior Member




121 Messaggi

Inserito il - 23/05/2005 : 21:04:01  Mostra Profilo
Citazione:
Messaggio inserito da fremyd

grazie ori era proprio quello ke volevo.. (ho studiato Algebra e i numeri modulo 5..
se nn kiedo troppo vorrei qualke link utile (nn tanto sulla parte di algebra ke gia conosco..
thx



visita il sito javadoc htt*://java.sun[.com]/j2se/1.5.0/docs/api/index.html?overview-summary.html



Torna all'inizio della Pagina

fremyd
Advanced Member


Cittā: Lecce _Pisa


958 Messaggi

Inserito il - 25/05/2005 : 09:50:34  Mostra Profilo
si l' avevo guardato.. quello ke mi interesserebbe sapere č in ke modo e in quali linguaggi vengono utilizzati valori come la temperatura della cpu o il traffico di rete o il movimento del mouse in questo contesto..
Mi pare infatti di aver letto ke alcune funzioni random sfruttano questo tipo di dati per generare il seme (almeno credo)
In pratica la randomize usa solo l' orologio di sistema (come succede in Pascal) o esiste qualke linguaggio dove vengono usati anke altre informazioni come quelle citate?
Torna all'inizio della Pagina

ori
Moderatore


Cittā: Verona


2043 Messaggi

Inserito il - 25/05/2005 : 10:14:43  Mostra Profilo
Francamente non so come gestiscono il seme gli altri linguaggi, ma generalmente se ti permettono di avere un contruttore o un metodo per impostare il seme al valore che vuoi, puoi usare qualsiasi valore riesci ad ottenere. Diciamo che usando l'orologio di sistema sei sicuro che su qualsiasi macchina puoi mettere in esecuzione il tuo programma, mentre altri valori (temperatura, traffico, ...) non sono sempre disponibili. E poi, con l'orologio di sistema, sei praticamente sicuro di avere sequenze nuove ad ogni esecuzione.
Torna all'inizio della Pagina

fremyd
Advanced Member


Cittā: Lecce _Pisa


958 Messaggi

Inserito il - 25/05/2005 : 10:41:50  Mostra Profilo
mi riferivo alla situazione in cui nn 6 tu a scegliere il seme da cui partire..
Nel senso ke usi la funzione randomize e poi la random senza parametri (in qualsiasi linguaggio)
Torna all'inizio della Pagina

ori
Moderatore


Cittā: Verona


2043 Messaggi

Inserito il - 26/05/2005 : 08:33:26  Mostra Profilo
Dovresti guardare le specifiche implementative delle due funzioni relativamente ad ogni linguaggio che ti interessa. Non c'e` un unico LCG (Linear Congruential Generator), quindi ognuno puo` usare quello che vuole.
Torna all'inizio della Pagina

fremyd
Advanced Member


Cittā: Lecce _Pisa


958 Messaggi

Inserito il - 27/05/2005 : 11:13:07  Mostra Profilo
la maggior parte dei linguaggi usano solo il clock di sistema.. cmq ormai diciamo ke ho risolto..
Ciao
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  

 Forum Bloccato
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
NoTrace Security Forum
© Nazzareno Schettino
RSS NEWS
Torna all'inizio della Pagina
Pagina generata in 0,36 secondi. TargatoNA | SuperDeeJay | Snitz Forums 2000