Создание и получение значений из этого массива работает нормально. Я могу изменить его размер и заполнить его значениями true
без проблем.
class Solution
def initialize
@solution_matrix = [[[]]]
end
def [](receiver, provider, moment)
return @solution_matrix[receiver][provider][moment]
end
def []=(receiver, provider, moment, value)
puts "making " + receiver.to_s + " : " + provider.to_s + " : " +moment.to_s + " -> " + value.to_s
@solution_matrix[receiver][provider][moment] = value
end
Проблема начинается, когда я пытаюсь изменить любое из значений. @solution
является экземпляром Solution
:
@solution[2,3,15]=false;
Выход консоли:
making 2 : 3 : 15 -> false
Кажется, все в порядке, но когда я пытаюсь:
def list_disconnected
number_of = 0
for receiver in 0...@problem.number_of_receivers
for provider in 0...@problem.number_of_providers
for moment in 0...@problem.number_of_moments
if (@solution[receiver,provider,moment]==false)
puts receiver.to_s + " : " + provider.to_s + " : " +moment.to_s
number_of += 1
end
end
end
end
puts number_of
end
показывает, что все значения в moment
15 были установлены в false. С:
number of receivers: 40
number of providers: 6
number of moments: 50
Я получаю 240 ложных клеток.