|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Casualità e Informatica
Ciao a tutti,
volevo capire come funzionava la casualità nell'informatica, cioè coma fa un metodo come Math.random() di java a tornare un numero casuale? la cosa mi suona davvero strana.. in quanto dalla statistica so che la casualità in se non esiste.. ma è solo creata dalla nostra limitata conoscenza sulle cose! Come fa un computer a scegliere un numero casuale? non ci deve stare un algoritmo programmato dietro? e se è così allora non basterebbe conoscerlo per prevederlo? sono molto confuso sull'argomento.. ![]() ![]() ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
non vorrei dire fesserie ma è proprio come dici tu...in effetti si parla di pseudo-casualità...su l'argomento non sò praticamente niente ma non vedo un altro modo di calcolare numeri se non con un algoritmo!
La soluzione allora è generare una sequenza di numeri "apparentemente casuali", ossia la conoscenza del numero i-esimo offre scarsa riconducibilità alla conoscenza del numero i+1! Mi sembra che solo a livello hardware si generano numeri veramente casuali...ma non ho idea di come si faccia! Ciao
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
La prima cosa che mi viene in mente, è che l'algoritmo utilizzato per generare il numero casuale possa o aver prefissato una serie di combinazioni in base a qualcosa che avviene in un determinato istante, oppure che possa essere costruito in base a degli eventi o variabili esterne a scelta dell'utente. Nel primo caso, per esempio, mi verrebbe in mente che potrebbe scegliere come seme l'istante di tempo in cui viene chiamata la funzione di generazione del numero, elevata a potenza di 3 (sempre per esempio) e moltiplicata per il numero di il seriale di un qualche dispositivo fisico espresso in numeri. Nel secondo caso invece, si potrebbe avere un'arbitrarietà differente in base al momento in cui l'utente decide di generare il numero. Per fare un esempio (spero lolloso perchè di matematico non ha nulla), potrei decidere di codificare i miei stati d'animo come variabili; ad esempio: mal di testa = 1067,89, far elevare a potenza questo numero per i secondi che segna l'orologio di sistema, decidere dargli in pasto anche il numero dei caratteri che formano il titolo del cd che sto ascoltando in questo istante e così via. Non so quanto giusto sia questo mio ragionamento, dato che sono ignorante in materia, ma spero che fra tante stupidaggini ci sia qualcosa di fondato nelle mie parole ![]() RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
__________________
![]() |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() Mi spiego meglio, prendendo come esempio gli algoritmi di cifratura. Pensando al tipo MD5, so che non è possibile risalire all'origine. Il perchè, sinceramente non lo so ancora, spero che qualche esperto ci illumini entrambi.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Qui si trova qualche informazione:
http://it.wikipedia.org/wiki/Random
__________________
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Vengono chiamati pseudo-casuali infatti: si basano su routine matematiche che prendono in input uno o più seed casuali (che derivano dalla lettura di alcune aree "adatte" di memoria, dall'orologio di sistema e altro) per generare delle sequenze di byte che non sono davvero "random", ma che in effetti vi assomigliano molto. I dettagli implementativi, ovviamente, variano in base ai linguaggi e al sistema operativo utilizzato
__________________
Il sole è giallo |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Nell'informatica e in generale quando si ha a che fare con un sistema deterministico, non si può parlare di casualità ma solo di pseudo-casualità.
Una sequenza completamente casuale di numeri è una sequenza in cui non è possibile determinare a priori il prossimo numero generato. Per dirla in modo diverso: il numero generato non ha alcuna relazione con i numeri generati in precedenza. All'interno di un software o ad esempio in un circuito elettronico digitale, si ha una situazione diametralmente opposta. Dovendo usare un algoritmo e quindi usare regole e leggi ben precise, il prossimo numero generato è certamente legato in qualche modo ai numeri precedenti. Nei generatori di numeri pseudo-casuali si cerca di ottenere una sequenza in cui i numeri siano uniformemente distribuiti lungo un certo periodo. Questo periodo è la quantità di numeri generata prima che il generatore ricominci da capo la sequenza. Un generatore di numeri pseudo-casuali è quindi contraddistinto da una "periodicità". Un elemento importante nei generatori di numeri pseudo-casuali è il "seme", cioè un numero che serve per inizializzare l'algoritmo e che determina la sequenza dei numeri. A parità di algoritmo e di seme, si otterrà sempre la stessa identica sequenza di numeri. E in genere il seme viene stabilito in base ad altri valori che dipendono dallo stato del sistema in quel momento. Tipicamente si usa una informazione legata alla data/ora corrente. Per finire, generare dei dati completamente casuali è possibile ma ci si deve affidare a dell'hardware specifico. Si devono cioè sfruttare dei fenomeni fisici come ad esempio il rumore termico in certi componenti elettronici o altri fenomeni quantistici, il cui andamento è imprevedibile e che riguarda la fisica della materia.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
![]()
__________________
![]() |
|
![]() |
![]() |
![]() |
#10 |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:43.