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 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
#\ exec tclsh "$0" ${1+"$@"}
console show
package require Tcl
#---------------------------------------------------
proc Racine { Res1 } {
if { $Res1 < 1 && $Res1 > 0 } {
return $Res1
} else {
set Res1 [expr $Res1 - 1]
};#end of if
};#end of Racine
#---------------------------------------------------
proc Hasard { alea_e1 } {
set k [expr 10]
set a [expr abs(8*$k + 3)]
puts "a \= $a"
#set n 1024
set n 55;#(le plus grand entier disponible)
set m [expr pow(2,[expr $n - 1])]
#puts "m \= $m"
puts "alea_e1 \= $alea_e1"
set alea_e2 [expr $a * $alea_e1 ]
#puts "Début: alea_e2 \= $alea_e2"
if { $alea_e2 < 0 } {
set alea_e2 [expr $alea_e2 - $m]
};#end of if
set alea_x [expr $alea_e2 / ($m - 1) ]
#puts "alea_x \= $alea_x"
return $alea_x
};#end of Hasard
#---------------------------------------------------
proc Fonction { alea_e j } {
set alea_e [expr pow(2,$j) + exp(abs($alea_e)) ]
return $alea_e
};#end of Fonction
#---------------------------------------------------
proc Generateur_Hamming {} {
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_e [Hasard $graine]
while { $i < $Max } {
# nombre aléatoire suivant
set alea_e [Hasard $alea_e ]
# puts "alea_e (Generateur_Hamming) \= $alea_e"
set nombre [Fonction $alea_e $i]
set Liste_Res [lappend Liste_Res $nombre ]
incr i
};#end of while
puts "Liste_Res \= $Liste_Res"
};#end of Generateur_Hamming
#---------------------------------------------------
Generateur_Hamming |
Partager