IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tcl/Tk Discussion :

Est-ce que la suite aléatoire est parfaite ?


Sujet :

Tcl/Tk

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Par défaut Est-ce que la suite aléatoire est parfaite ?
    Salut.

    Comment savoir si une suite pseudo-aléatoire est parfaite avec les tests
    principaux suivants:
    1) test de la moyenne? la moyenne des nombres obtenus = 0.5
    2) test de la variance? la variance doit être égale à 1/12
    3) test de l'histogramme? l'histogramme doit être plat
    4) test du Khi-carré? m-2*sqrt(m) < K2 < m + 2*sqrt(m)
    K2 = somme i = 0 à i = m-1 (((f(i) - n/m)*(f(i)-n/m)) / (n/m))
    où n est la longueur de la liste obtenue,
    m nombre d'issues possibles,
    f(i) la fréquence absolue de l'issue i

    d'après le code suivant de la liste simulant les nombres aléatoires?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    #\ exec tclsh "$0" ${1+"$@"}
    console show
     
    package require Tcl
     
    #---------------------------------------------------
     
    proc Racine { Res1 } {
     
    if { $Res1 < 1 && $Res1 > 0 } {
         return $Res1
    } else {
         set Res1 [expr abs($Res1 - 1)]
    };#end of if
     
    };#end of Racine
     
    #---------------------------------------------------
     
    proc fraction { x } {
     
    if { $x >= 0.0 } {
         set Res2 [expr abs($x - round($x))]
    } else {
         set Res2 [Racine $x]
    };#end of if
     
    return $Res2
    };#end of fraction
     
     
     
    #---------------------------------------------------
     
    proc Hasard { x } { 
    set Res [fraction  [expr 147 * $x]] 
    return $Res
    };#end of Hasard
     
     
    #---------------------------------------------------
     
    proc Variante_Generateur_147 {} {
    global Liste_Res
     
    set Max 100
    set graine 0.0
    set alea 0.0
    set Liste_Res ""
    set i 1
     
    set graine [Racine [expr (1 + sqrt(5))/2] ]
    set alea [Hasard $graine]
     
    while { $i < $Max } {
            set Liste_Res  [lappend Liste_Res $alea]
    # nombre aléatoire suivant
    	set alea [Hasard $alea]
            incr i
    };#end of while
     
    puts "Liste_Res \= $Liste_Res"
     
    };#end of Variante_Generateur_147
     
    #---------------------------------------------------
     
    Variante_Generateur_147

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Par défaut L'aléatoire n'existe pas en informatique
    On peut montrer facilement qu'il n'est pas possible de générer une suite aléatoire avec une représentation finie des nombres et un algorithme déterministe comme ceux de tous les ordinateurs: la suite est toujours périodique.

    Donc votre algorithme ne donnera pas de bon résultats indépendamment de tous les critères que vous pourrez trouver.

    Vous devez donc reformuler votre question en fonction de vos attentes.

    Vous pouvez utiliser aussi des dispositifs hardware comme /dev/random sous linux (Je ne connais pas Windows) qui donnent de meilleurs résultats sans être parfaits toutefois.

    Je vous conseille la lecture de l'excellent 'Cryptographie' de Bruce Scheiner qui disctute de la génération de nombres aléatoires.

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/12/2009, 14h57
  2. Est-ce que Exception elle-même est checked ?
    Par michaelcourcy dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 05/02/2008, 08h43
  3. Est-ce que le session id est unique à vie ou pas ?
    Par davitz38 dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2007, 17h31
  4. Réponses: 5
    Dernier message: 04/07/2006, 10h17
  5. [Zope]Est-ce que la doube-clic est gérable??
    Par keumlebarbare dans le forum Zope
    Réponses: 2
    Dernier message: 09/06/2005, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo