Module: GA::Random

Defined in:
lib/rugal.rb

Constant Summary collapse

@@random =
Math::Random.new

Class Method Summary collapse

Class Method Details

.rand(*args) ⇒ Object



23
24
25
# File 'lib/rugal.rb', line 23

def self.rand(*args)
    @@random.rand *args
end

.rand_int(*args) ⇒ Object



27
28
29
# File 'lib/rugal.rb', line 27

def self.rand_int(*args)
    self.rand(*args).to_i
end

.randomObject



13
14
15
# File 'lib/rugal.rb', line 13

def self.random
    @@random
end

.random_signObject



37
38
39
40
41
# File 'lib/rugal.rb', line 37

def self.random_sign
    value = self.rand(2)
    
    return value == 0 ? -1 : 1
end

.set_seed(i) ⇒ Object



9
10
11
# File 'lib/rugal.rb', line 9

def self.set_seed(i)
    @@random = Math::Random.new i
end

.shuffle(array) ⇒ Object



17
18
19
20
21
# File 'lib/rugal.rb', line 17

def self.shuffle(array)
    GA.contract("Shuffle needs an array") { array.is_a?(Array) }
    
    return array.shuffle(random: @@random)
end

.with_probability(probability) ⇒ Object



31
32
33
34
35
# File 'lib/rugal.rb', line 31

def self.with_probability(probability)
    GA.contract("The probability must be in the range [0, 1] (#{probability} given)") { probability.between?(0, 1) }
    
    return self.rand <= probability
end