Differenze tra le versioni di "Drand48 ()"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 1: Riga 1:
 
La funzione della libreria di C
 
La funzione della libreria di C
 
  void drand48 (void)
 
  void drand48 (void)
restituisce un numero pseudo-casuale nell'intervallo 0.0 - 1.0. Il generatore casuale utilizzato è l'algoritmo congruente lineare e l'aritmetica con intero a 48 bit. Prima della prima chiamata alla funzione "''drand48( )''", è necessario chiamare la funzione "''srand48( )''" o la funzione "''seed48( )''" per inizializzare il "seme" casuale.
+
restituisce un numero pseudo-casuale nell'intervallo 0.0 - 1.0. Il generatore casuale utilizzato è l'algoritmo congruente lineare e l'aritmetica con intero a 48 bit. Prima della prima chiamata alla funzione "drand48()", è necessario chiamare la funzione "srand48()" o la funzione "seed48()" per inizializzare il "seme" casuale.
 
 
  
 
Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché bisognerà dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta:
 
Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché bisognerà dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta:
Riga 20: Riga 19:
 
    
 
    
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim f As Float
 
   Dim f As Float
 
    
 
    
  <FONT color=Gray>' ''Passiamo la parte frazionale di "CFloat(Now)", che rappresenta i microsecondi''
+
  <FONT color=Gray>' ''Passiamo, come "seme", la parte frazionale di "CFloat(Now)", che rappresenta la quantità di microsecondi del tempo trascorso dall'epoca Gambas (una data prescelta posta a 8000 anni a.c.)''</font>
' ''trascorsi dall'epoca Gambas (una data prescelta posta a 8000 anni a.c.)''</font>
+
  srand48(Val(Scan(Str(CFloat(Now)), "*,*")[1]))
  srand48(Val(Scan(Str(CFloat(Now)), "*,*")[1]))
 
 
    
 
    
  f = <FONT color=#B22222>drand48</font>()
+
  f = <FONT color=#B22222>drand48</font>()
 
+
 
  Print f, "è un numero casuale compreso fra 0,0 e 1,0"
+
  Print f, "è un numero casuale compreso fra 0,0 e 1,0"
 
+
 
  '''End'''
+
  End
 
 
  
  

Versione attuale delle 10:39, 13 giu 2024

La funzione della libreria di C

void drand48 (void)

restituisce un numero pseudo-casuale nell'intervallo 0.0 - 1.0. Il generatore casuale utilizzato è l'algoritmo congruente lineare e l'aritmetica con intero a 48 bit. Prima della prima chiamata alla funzione "drand48()", è necessario chiamare la funzione "srand48()" o la funzione "seed48()" per inizializzare il "seme" casuale.

Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché bisognerà dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern drand48(void) As Float In "libc:6"


Semplice esempio di uso in Gambas:

Library "libc:6"

' void srand48 (long int __seedval)
' Seed random number generator.
Private Extern srand48(__seedval As Long)

' double drand48 (void)
' Return non-negative, double-precision floating-point value in [0.0,1.0).
Private Extern drand48() As Float
 

Public Sub Main()
 
 Dim f As Float
 
' Passiamo, come "seme", la parte frazionale di "CFloat(Now)", che rappresenta la quantità di microsecondi del tempo trascorso dall'epoca Gambas (una data prescelta posta a 8000 anni a.c.)
 srand48(Val(Scan(Str(CFloat(Now)), "*,*")[1]))
  
 f = drand48()
 
 Print f, "è un numero casuale compreso fra 0,0 e 1,0"
 
End


Riferimenti