Module: RandSum

Included in:
Integer
Defined in:
lib/rand_sum.rb,
lib/rand_sum/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
"0.2.1"

Instance Method Summary collapse

Instance Method Details

#rand_sum(size) ⇒ Object



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
# File 'lib/rand_sum.rb', line 6

def rand_sum(size)
  # examples 1
    # 400.rand_sum(2)
    # => [153, 247]
  # example 2
    # result = 400.rand_sum(2)
    # puts "#{result} sum => #{result.inject(:+)}"
    # => "[346, 54] sum => 400"

  return self if size <= 1

  array = Array.new()

  # add first random number
  array.push(rand(self))
  
  (1..(size - 2)).each do 
    array.push(rand(self - array.inject(:+)))
  end

  # add last number
  array.push(self - array.inject(:+)) if array.inject(:+) < 1000

  array
end