Hello all
I would like to find an algorithm to caclulate all options on the
following problem.
Lets suppose we have a room of max capacity of 4 persons.
Which are the combinations of man - child in this room?
some of them will be:
empty room (none inside)
1 man
1 child
2 men
2 children
2 men 1 children
2 men 2 children
.
.
4 men
4 children
Hello all
I would like to find an algorithm to caclulate all options on the
following problem.
Lets suppose we have a room of max capacity of 4 persons.
Which are the combinations of man - child in this room?
0 children / 0 men
0 children / 1 men
0 children / 2 men
0 children / 3 men
0 children / 4 men
1 children / 0 men
1 children / 1 men
1 children / 2 men
1 children / 3 men
2 children / 0 men
2 children / 1 men
2 children / 2 men
3 children / 0 men
3 children / 1 men
4 children / 0 men
Hello all
I would like to find an algorithm to caclulate all options on the
following problem.
Lets suppose we have a room of max capacity of 4 persons.
Which are the combinations of man - child in this room?
0 children / 0 men
0 children / 1 men
0 children / 2 men
0 children / 3 men
0 children / 4 men
1 children / 0 men
1 children / 1 men
1 children / 2 men
1 children / 3 men
2 children / 0 men
2 children / 1 men
2 children / 2 men
3 children / 0 men
3 children / 1 men
max = 4 @result = []
(0…max).each do |x|
(0…(max - x)).each do |y| @combination = []
x.times { @combination << “children” }
y.times { @combination << “men” } @result << @combination
end
end
On Thu, Feb 25, 2010 at 2:40 AM, Alexander A. [email protected]wrote:
2 children
def people_in_room(occupants)
for men in 0…occupants
for children in 0…occupants - men
yield men , children
end
end
end
puts “in a room with 4 people, you could occupy it in the following
ways:”
people_in_room 4 do |men,children|
puts “men: #{men} , children: #{children}”
end
def people_in_room(occupants)
for men in 0…occupants
for children in 0…occupants - men
yield men , children
end
end
end
puts “in a room with 4 people, you could occupy it in the following
ways:”
people_in_room 4 do |men,children|
to_print = Array.new
to_print << “#{men} #{ men == 1 ? ‘man’ : ‘men’ }”
unless
men.zero?
to_print << “#{children} #{ children == 1 ? ‘child’ : ‘children’ }”
unless
children.zero?
puts to_print.join(’ ')
end
results = []
0.upto(4) do |n|
0.upto(2**n - 1) do |i|
s = i.to_s(2).rjust(n,‘0’).split(’’).sort.join
results << s unless results.include?(s)
end
end
p results.map! {|e| e.tr(‘01’,‘cm’)}
It produces the 1 children option plus the empty room one. We have the
same results 14 for you that don’t iclure the empty room combination and
15 for me with the empty room.
lol, you’re welcome. But I just saw that it prints an empty line for the
empty room. That’s what I get for not testing. Try adding this line to
the
beginning of the block:
next( puts “empty room” ) if men.zero? && children.zero?
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.