Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
95
Task/Random-numbers/Eiffel/random-numbers.e
Normal file
95
Task/Random-numbers/Eiffel/random-numbers.e
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
class
|
||||
APPLICATION
|
||||
|
||||
inherit
|
||||
ARGUMENTS
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
l_time: TIME
|
||||
l_seed: INTEGER
|
||||
math:DOUBLE_MATH
|
||||
rnd:RANDOM
|
||||
Size:INTEGER
|
||||
once
|
||||
Result:= 1000
|
||||
end
|
||||
|
||||
make
|
||||
-- Run application.
|
||||
local
|
||||
ergebnis:ARRAY[DOUBLE]
|
||||
tavg: DOUBLE
|
||||
x: INTEGER
|
||||
tmp: DOUBLE
|
||||
text : STRING
|
||||
|
||||
do
|
||||
-- initialize random generator
|
||||
create l_time.make_now
|
||||
l_seed := l_time.hour
|
||||
l_seed := l_seed * 60 + l_time.minute
|
||||
l_seed := l_seed * 60 + l_time.second
|
||||
l_seed := l_seed * 1000 + l_time.milli_second
|
||||
create rnd.set_seed (l_seed)
|
||||
|
||||
-- initialize random number container and math
|
||||
create ergebnis.make_filled (0.0, 1, size)
|
||||
tavg := 0;
|
||||
create math
|
||||
|
||||
from
|
||||
x := 1
|
||||
until
|
||||
x > ergebnis.count
|
||||
loop
|
||||
tmp := randomNormal / 2 + 1
|
||||
tavg := tavg + tmp
|
||||
ergebnis.enter (tmp , x)
|
||||
x := x + 1
|
||||
end
|
||||
|
||||
tavg := tavg / ergebnis.count
|
||||
text := "Average: "
|
||||
text.append_double (tavg)
|
||||
text.append ("%N")
|
||||
print(text)
|
||||
|
||||
tmp := 0
|
||||
from
|
||||
x:= 1
|
||||
until
|
||||
x > ergebnis.count
|
||||
loop
|
||||
tmp := tmp + (ergebnis.item (x) - tavg)^2
|
||||
x := x + 1
|
||||
end
|
||||
|
||||
tmp := math.sqrt (tmp / ergebnis.count)
|
||||
text := "Standard Deviation: "
|
||||
text.append_double (tmp)
|
||||
text.append ("%N")
|
||||
print(text)
|
||||
|
||||
end
|
||||
|
||||
randomNormal:DOUBLE
|
||||
|
||||
local
|
||||
|
||||
first: DOUBLE
|
||||
second: DOUBLE
|
||||
|
||||
do
|
||||
rnd.forth
|
||||
first := rnd.double_item
|
||||
rnd.forth
|
||||
second := rnd.double_item
|
||||
|
||||
Result := math.cosine (2 * math.pi * first) * math.sqrt (-2 * math.log (second))
|
||||
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue