0
我是Ruby新手,所以不要尖叫我...... 我試圖讓所有元素的子集給出,即使我知道有方法「排列」來做到這一點。問題在於兩個陣列。在循環之前,它打印正確的數組,並在循環內打印不同的數組... P.S. index_需要停止遞歸,因爲陣列不按要求工作遞歸問題
def generate_subsets(elements)
generate_subsets2(elements, [], 0)
end
def generate_subsets2(left, right, index_)
puts "received as left: #{left.inspect}"
puts "received as right: #{right.inspect}"
return if index_ >= 1
left.each_with_index do |element, index|
puts "left in loop: #{left.inspect}"
copy_left = Array.new(left)
copy_right = Array.new(right)
copy_left.delete_at(index)
copy_right.push(element)
puts "#{copy_left.inspect} & #{copy_right.inspect}"
generate_subsets2(copy_left, copy_right, index_ + 1)
end
end
generate_subsets(['a','b','c','d'])
爲什麼'return if index_> = 1'? –
這只是停止程序。否則它就會過着自己的生活...... – damluar