Newsgroup: it.comp.lang.visual-basic
Titolo: Generare numeri casuali con una certa distribuzione

salve a tutti.
Se volessi generare dei numeri casuali con una distribuzione, per esempio,
Gaussiana, come posso fare in VB?
Grazie mille
Pietro

 Gaussiana, come posso fare in VB?
Ovviamente nel caso di distribuzione Gaussiana, con media mu e varianza
sigma, dove mu e sigma sono parametri.
Mi ero dimenticato di specificarlo...
Rigrazie
Pelo

[Pelo = 
circa_IONON...@tin.it
 in
c39dar$2558ar$
1...@ID-71199.news.uni-berlin.de
] ha scritto:

Di Gauss rammento solo un pistolotto fatto come la cresta di un'onda, ... ma
magari era un'altra roba.
Vedi Randomize e Rnd, poi consideri i casuali che ti fanno comodo.
PS: "Numeri casuali con una distribuzione" non è un leggero controsenso?

 PS: "Numeri casuali con una distribuzione" non è un leggero controsenso?
Beh, diciamo di si... :-)
Ma se a te piacciono le more, dopo n-milioni di fidanzate, il totale delle
more sarà superiore al totale delle rosse e delle bionde...
La distribuzione non è casuale proprio proprio, diciamo che è "viziata"...
Ciau
Pietro

Ciao,
Premetto che di statistica ne so poco o niente però da quello che ho
capito tu vuoi una serie di valori casuali che "prevalgano di un po'"
sugli altri.
Se i valori possibili nella tua distribuzione sono ad esempio numeri
interi da 1 a 10 potresti convertire il valore Rnd() (compreso tra 0 e 1)
nel tuo intero da 1 a 10 ad esempio con questa logica:
Scegli 1 se Rnd() > 0 e < 0.1
Scegli 2 se Rnd() > 0.1 e < 0.25
Scegli 3 se Rnd() > 0.25 e < 0.4
Scegli 4 se Rnd() > 0.4 e < 0.45
(...)
Scegli 10 se Rnd() > 0.9 e < 1
in questo modo mi aspetto che i valori interi da 1 a 10 siano casuali come
li vuoi tu, ma allo stesso tempo il 2 uscirà più spesso del 4.
I valori di confronto ovviamente dovrai calcolarteli tramite equazioni che
tu sicuramente conoscerai meglio di me.
Ciao,
*Roby*
Pelo ha scritto:




-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

> PS: "Numeri casuali con una distribuzione" non è un leggero controsenso?
Assolutamente no.... i numeri casuali non sempre devono essere "casuali"  :D
--
rIO.sK

 Grazie mille
http://www.physics.unlv.edu/~pang/comp2/code213.c
Mi pare sia portabile in VB
--
rIO.sK

 Mi ero dimenticato di specificarlo...
La funzione RND di VB restituisce una distribuzione assolutamente piatta.
Quello che puoi fare è taroccare i risultati utilizzando funzioni tue che,
ad esempio, 'avvicinino' fra loro i valori in funzione della distanza,
magari con qualche esponente a tuo piacimento.
E' evidente che se vuoi ottenere una varianza e una media esatta, l'unico
modo (e questo non è un discorso di VB, è semplice logica) è quello di
aggiungere artificiosamente dei valori a fine serie, calcolando quali ti
servono in funzione di media e varianza dopo la serie veramente casuale.
Ad esempio, diciamo di assumere un valore medio di 100.
Chiederemo quindi a VB di generarci valori compresi fra 0 e 200 (vedi Rnd).
Poi faremo una taroccatina ad ogni elemento della popolazione, avvicinandolo
a 100 (Media_Voluta).
Ad esempio, una funzione del tipo:
Valore_Registrato=Valore_Casuale + [ (Media_Voluta - Valore_Casuale) ^
(-X) ]
giocando su X puoi rendere la gaussiana più o meno stretta.
Dopo avere archiviato un numero sufficiente di elementi, calcoli varianza e
media, e inserisci artificiosamente i valori correttivi per riportarti ai
risultati voluti.
Ciao
Alberto

 servono in funzione di media e varianza dopo la serie veramente casuale.
Grazie mille a rl0 e anche a te.
Ciao
Pelo

 Grazie mille a rl0 e anche a te.
Ho dimenticato il Roby! Scus!
Ciau
Pelo

[rIO = 
circ...@spittingpimps.org
 in c39h0v$s40$
1...@fata.cs.interbusiness.it
]
ha scritto:

Non diciamo cazzate: 
http://www.garzantilinguistica.it/digita/digita.html
 e
digita casuale.
La statistica è un'invenzione dei politici, non è, per definizione, una
scienza esatta, anzi, è una ciofeca proprio.

[Pelo = 
circa_IONON...@tin.it
 in
c39j1k$25481v$
1...@ID-71199.news.uni-berlin.de
] ha scritto:

Pelo, vaffanculo.
Con tutto il rispetto (sincero, garantito e, credo, dimostrato) per Albe, io
avevo detto la stessa cosa: "condizionare la casualità" che VB ti consente.

[Pelo = 
circa_IONON...@tin.it
 in
c39drp$265hlb$
1...@ID-71199.news.uni-berlin.de
] ha scritto:

E tu pensi che, per caso, io possa considerare una bionda (o rossa) se sono
attratto dalle more?
Semmai accadesse, è certamente uno di quei punti da escludere proprio perchè
"fuori, clamorosamente fuori, media". (Ndr: "media" è l'unico concetto
"statistico" che concepisco)
Ripeto, la statistica non esiste, è un'invenzione che serve a "far
considerare" "cose che non sono", forzosamente e tendenziosamente. Come
potrebbe essere considerato un certo Vito (sì, quello che non fa statistica,
ma che guarda, letteralmente e fisicamente, sempre in un punto solo), sennò?

 considerare" "cose che non sono", forzosamente e tendenziosamente.
Anche io la penso come te...
Quando ho dato l'esame di affidabilità, c'erano frasi del tipo:
Assumento che un guasto qualunque blocchi la macchina, qual'è la probabilità
che dopo un tempo t siano occorsi tre guasti?
E io ho sempre sostenuto e sostengo tutt'ora che è Zero perchè  se la
macchina si blocca al primo non possono succederne altri. Però al corso
sarei stato bocciato.
Poi spiegavano la rava e la fava che è un calcolo probabilistico e qua e
la...
Ovviamente ci sono mille altre considerazioni di contorno da fare...
Ciao
Pelo
P.S. Ti ho scritto in pvt a "
iltuonickatiltuoprovider.it
"

 P.S. Ti ho scritto in pvt a "
iltuonickatiltuoprovider.it
"
Difficile che arrivi... Siamo in pubblico, se vuoi mandami pure a fanculo in
pubblico.

 pubblico.
Strano, non è tornata la solita e-mail con scritto user unknown...
Si vede che non l'ho mandata a te!
Semplicemente non ho capito perchè te la sei presa... tutto qua!
Non avevo fatto il tuo  nome perchè mi ero dimenticato anche di te!
Ciau
Pelo

[Pelo = 
circa_IONON...@tin.it
 in
c39nh7$25dbcv$
1...@ID-71199.news.uni-berlin.de
] ha scritto:

Fermo restando che le cose che davvero mi infastidiscono non sono quelle,
fermo restando che non c'è alcun obbligo (nemmeno l'abitudine) di
ringraziare, hai ringraziato Albe e rIO, poi hai fatto un post perchè t'eri
dimenticato (scusandoti) di Roby, ... a me, il primo che t'ha risposto
(persino, credo, correttamente), non m'hai cagato proprio. Ciapalè! :-P

 (persino, credo, correttamente), non m'hai cagato proprio. Ciapalè! :-P
Devi capirmi... sono già in ferie... Domenica parto per 9 giorni di vacanza
Cuba! :-D
Vorrà dire che quando capiti per Lecco ti offrirò una birra per farmi
perdonare.
Ciau
Pelo

 vacanza Cuba! :-D
Lascia stare le bambine mi raccomando!!! :-P
ciaociao

Pietro:
  ti allego tre routines, di uso comune,
per la generazione di numeri pseudocasuali a
distribuzione di probabilita' uniforme, normale
(gaussiana) e di Rayleigh (molto usata nelle
simulazioni).
Ciao, sperando che ti possano servire.
Franco
Web: 
http://www.flanguasco.org
Private Function RandU(ByVal V_Min!, ByVal V_Max!) As Single
'
'   Ritorna una variabile casuale reale a distribuzione uniforme.
'   V_Min <= RandU < V_Max:
'
    RandU = V_Min + (V_Max - V_Min) * Rnd
'
'
'
End Function
Private Function RandN(ByVal VMedio!, ByVal Sigma!) As Single
'
'   Ritorna una variabile casuale reale a distribuzione normale.
'   VMedio - 6 * Sigma <= RandN < VMedio + 6 * Sigma:
'
    Dim e!, I&
'
    e = 0!
    For I = 1 To 12
        e = e + Rnd
    Next I
'
    RandN = VMedio + Sigma * (e - 6!)
'
'
'
End Function
Private Function RandR(ByVal Sigma!) As Single
'
'   Ritorna una variabile casuale reale a distribuzione di Rayleigh:
'
    RandR = Sqr(-2! * Sigma * Sigma * Log(1! - Rnd))
'
'
'
End Function

 scienza esatta, anzi, è una ciofeca proprio.
Tempo fa lessi una striscia di Mafalda che mi rimase impressa:
"
La statistica è quella cosa per cui se tu non credi alle statistiche,
statisticamente fai parte degli scettici
"
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 La funzione RND di VB restituisce una distribuzione assolutamente piatta.
Sei sicuro?
Ricordo "violente" discussioni sull'argomento in passato, proprio perchè
secondo alcuni (Wodka40°?) RND non distribuiva correttamente il rumore.
Vedi ad es.
http://groups.google.it/groups?hl=it&lr=&ie=UTF-8&threadm=ue0Ra.63513%24qa5
.
1426099%
40news2.tin.it
&rnum=1&prev=/groups%3Fhl%3Dit%26lr%3D%26ie%3DISO-8859
-1%26q%3Drnd%2Brumore%2Bwodka40%25B0%26meta%3Dgroup%253Dit.comp.lang.visual-
basic


 Sei sicuro?
Non ci metterei la mano sul fuoco.
Però la documentazione dice che Rnd non fa preferenze nel range, per cui, lo
interpreto come 'distribuzione piatta'.
Ciao
Alberto

 scienza esatta, anzi, è una ciofeca proprio.
Sei ignorante o cosa ???
Leggiti un buon libro di analisi invece di spulciare il garzanti online... o
fai un giro sul sito dell'accademia della crusca.
Dato che ti fidi di internet, prova a cercare "numeri pseudocasuali" su
google e fai un piacere a te stesso.
P.S: Si, sono stato offensivo, ma dire che ho detto una cazzat non mi sembra
meno offensivo.
--
rIO.sK

 fai un giro sul sito dell'accademia della crusca.
con l'accademia della crusca stiamo proprio a posto :)
Sono d'accordo con Lupo.
La statistica non è una scienza esatta, o meglio, non è applicabile in 
modo esatto.
La statistica indica una tendenza (o moda, per dirlo alla statistichese) 
e non offre dati certi, perchè altrimenti oggi avrei vinto al 
superenalotto già 3 o 4 volte.
Ciao

 sembra meno offensivo.
Ok, se vuoi. Ma prova te a citare in un post la proprietà "Pseudo-Text" di
un textbox e vedi chi e quanti ti potranno capire. Giurin-giuretta che
qualcuno ti potrà dire "hai detto una cazzata", non per offenderti, ma
perchè è una cazzata.