Visualizzazione dei risultati da 1 a 5 su 5

Discussione: chiarimento su srand()

  1. #1
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732

    chiarimento su srand()

    Ragazzi sapreste spiegarmi bene il funzionamento della funzione srand() per la generazione di numeri casuali?

    Vi spiego meglio:

    Ho questa funzione
    srand((double) microtime()*100000);

    di cui ho capito il funzionamento se non per il fatto che mi sfugge il significato e l'utilità di (double) che non sò cosa sia, (raddoppia forse il risultato di microtime()*100000)?), dato che il libro non si degna di farne menzione.

    ciò che cmq ho ben compreso è che il tutto è costituito da due parti la prima con l'inizializzazione del generatore di numeri casuali con srand() e poi con la definizione dei limiti di intervallo con rand().

    I'm in your hands

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    converte il risultato in un double.

  3. #3
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392

    Re: chiarimento su srand()

    Originariamente inviato da Sgurbat
    Ragazzi sapreste spiegarmi bene il funzionamento della funzione srand() per la generazione di numeri casuali?

    Vi spiego meglio:

    Ho questa funzione
    srand((double) microtime()*100000);

    di cui ho capito il funzionamento se non per il fatto che mi sfugge il significato e l'utilità di (double) che non sò cosa sia, (raddoppia forse il risultato di microtime()*100000)?), dato che il libro non si degna di farne menzione.

    ciò che cmq ho ben compreso è che il tutto è costituito da due parti la prima con l'inizializzazione del generatore di numeri casuali con srand() e poi con la definizione dei limiti di intervallo con rand().

    I'm in your hands
    è il tipo di file...
    come integer, array, boolean
    http://it.php.net/language.types

  4. #4
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    microtime() restituisce un valore di tipo stringa. in particolare avrai l'attuale data in formato unix epoch (il numero di secondi trascorsi dal 1 gennaio 1970) preceduta dai millisecondi, quindi ad esempio:
    codice:
    <?php
    echo microtime();
    ?>
    ti stampa qualcosa del tipo
    0.89013400 1097428936
    (si tratta di una stringa)

    per quanto riguarda il termine "double" invece, si tratta dei numeri con la virgola, uno dei tipi di dato riconosciuti da php (sinonimo di float).
    con quell'operazione stai facendo un casting da stringa a double, ossia forzi una stringa ad essere interpretata come double. ecco quindi che
    codice:
    <?php
    echo (double)microtime();
    ?>
    ti stamperebbe soltanto
    0.89013400
    ossia il risultato del casting.
    con la funzione srand() ne hai bisogno perche questa prende come parametro un numero intero e non una stringa

    altro esempio di casting:
    codice:
    $pippo = "una stringa";
    echo $pippo; // stampa la stringa
    $pippo = (int)$pippo; // casting a intero
    echo $pippo; // stampa "0", il risultato del casting
    maggiori info naturalmente sul manuale
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  5. #5
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Grazie M4rko, in effeti non sapevo che il risultato di microtime() fosse una stringa (non viene specificato nel libro), e non ricordavo che (double),sinonimo di float, facesse il casting della variabile.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.