• In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 7 di 7

Discussione: Per programmatori molto AVANZATI

Cambio titolo
  1. #1
    Utente Tostapane L'avatar di WarriorXP
    Registrato il
    10-02
    Località
    MI C.le - LE
    Messaggi
    23.429

    Domanda Per programmatori molto AVANZATI

    Da alcune settimane mi frulla nella testa una domanda: come fanno i programmatori dei linguaggi a rendere la pseudocasualità?

    Di regola sono accettate solamente operazione aritmetiche dall'elaboratore, lasciando la casualità all'uomo, l'unico in gradi di renderla.

    Come fanno a riprodurla?

  2. #2
    Redattore L'avatar di pape
    Registrato il
    10-02
    Messaggi
    9.791

    Re: Per programmatori molto AVANZATI

    Inviato da WarriorXP
    Da alcune settimane mi frulla nella testa una domanda: come fanno i programmatori dei linguaggi a rendere la pseudocasualità?

    Di regola sono accettate solamente operazione aritmetiche dall'elaboratore, lasciando la casualità all'uomo, l'unico in gradi di renderla.

    Come fanno a riprodurla?
    Ci sono vari metodi: nel kernel di linux, per esempio, è presente un random number generator, che altro non è che un generatore di entropia utilizzato sopratuttto per la generazione di chiavi di protezione. In alternativa, si possono creare algoritmi che sfruttino il clock della CPU e altri parametri (come input da tastiera e altro) legati in maniera che il risultato sia il più casuale possibile.
    Nei casi dove l'entropia è fondamentale, si possono usare i frattali, formule matematiche ad altissima entropia che modificano radicalmente il valore finale anche per infinitesimali variazioni dei parametri iniziali.

    Se sei interessato ti consigliato di dare un'occhiata a qualche sito che affronti il problema della crittografia, o leggerti per bene i manuali del PGP: offrono parecchie informazioni interessanti sui generatori hardware o software di entropia.

    Pape

  3. #3
    Utente L'avatar di Phoenix
    Registrato il
    10-02
    Località
    Midwich Street
    Messaggi
    6.699
    Generalmente si utilizzano valore che dipendono dal clock o dall'orologio di sistema;in C++ ad esempio con la funzione rand() e la libreria time.h si ottiene una "pseudocausalità" come l'hai definita tu.
    I valori dipendono da una costante massima (superiore a 2byte) o dal numero di dati che si vuole ottenere (aggiungendo % N, dove N è il numero di dati... ad esempio N=6 per le facce di un dado, N=2 per le facce di una moneta e così via).


    He who is not bold enough to be stared at from across the abyss
    is not bold enough to stare into it himself.

  4. #4
    Utente
    Registrato il
    10-02
    Messaggi
    2.367
    In genere si utilizza il clock.
    Anche nelle calcolatrici (alcune hanno la funzione random) per esempio, se non sbaglio il numero casuale viene elaborato il base alla frequenza del chip, ma non so bene in che modo.
    In qualche caso, avevo letto che in qualche modo si andava a leggere il valore della tensione o cose del genere..........
    Ultima modifica di Yubei; 10-06-2003 alle 21:53:32

  5. #5
    I am Pain. L'avatar di The Wind Waker
    Registrato il
    05-03
    Località
    Nuoro
    Messaggi
    1.576
    Negli esempi che ho visto io finora ( c++ ) si utilizzava srand passando come dato il timer del pc per generare un seme che poi veniva sfruttato da rand per rendere davvero casuale o pseudocasuale la scelta dei numeri.


  6. #6
    Utente GNU/Linux
    Registrato il
    10-02
    Località
    Roma
    Messaggi
    3.246
    Esistono anche generatori hardware di numeri casuali, almeno su alcune schede madri Intel, se non ricordo male.

  7. #7
    Utente Tostapane L'avatar di WarriorXP
    Registrato il
    10-02
    Località
    MI C.le - LE
    Messaggi
    23.429
    Non credo di aver capito molto bene, come fa ad usare il clock??

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •