Почему я не могу установить значение для многомерного массива? - PullRequest
0 голосов
/ 03 января 2012

Создание и получение значений из этого массива работает нормально. Я могу изменить его размер и заполнить его значениями 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 ложных клеток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...