Как Ruby знает, где найти необходимый файл?

Поправьте меня, если я ошибаюсь, но при условии, что набор расстояний [1, 2, 3] не так ли? Затем вы начинаете с 1/1 + 2/1 + 3/1, которое (давайте оставим их здесь как дроби) равняется 6/1, так как все они имеют здесь один и тот же «знаменатель», это не меняется. Таким образом, это означает, что первая итерация, деленная на единицу, является буквально суммой значений. (1 + 2 + 3) / 1 делится на единицу. И все, что делится на 1, само по себе. Так что это просто сумма.

Теперь. На втором проходе, если я правильно предположил, 1/2 + 2/2 + 3/2 - снова оставив их в виде дробей - (1 + 2 + 3) / 2 = 6/2. К настоящему времени вы должны увидеть шаблон, верно? Первый проход был 6/1, второй - 6/2, следующий будет 6/3 ...

Так как насчет:

public static int findMin(List<Integer> distance, int points) {
    int sum = 0;
    for (Integer i : distance) {
        sum += i;
    }

    int min = 1;
    while (sum / min > points) {
        min += 1;
    }

    return min;
}

Возможно, решение, подобное этому, сработает?

edit Итак, как оказалось, это решение предполагает (по крайней мере, частично ) некоторая математическая точность, однако представляется, что деление на элемент должно быть целочисленным делением, которое искажает некоторые результаты, если мы подходим к нему строго математически. Поэтому, не будучи прямым ответом на проблему, я чувствую, что это достаточно правильно, чтобы оставить здесь решение.

5
задан Andrew Grimm 9 November 2011 в 02:23
поделиться

3 ответа

При запуске приложения для направляющих, оно выполняет config/boot.rb, который звонит Rails::Initializer.set_load_path и thatsets $LOAD_PATH.

Ruby использует тот список каталогов для нахождения файлов указанными на a require строка. Если Вы даете ему полный путь как require '/home/lolindrath/ruby/lib.rb' это пропустит тот поиск.

Это примерно походит #include <stdlib.h> в C/C++, где это ищет включать путь, Вы даете компилятор для нахождения того заголовочного файла.

13
ответ дан 18 December 2019 в 13:20
поделиться

Я верю, потому что Ваши пути созданы в Вашем/config/environment.rb файле:

require File.join(File.dirname(__FILE__), 'boot')
1
ответ дан 18 December 2019 в 13:20
поделиться

Конечно. В/config/boot.rb (названный в environment.rb) RAILS_ROOT настраивается как так:

RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)

Который позволяет Вам требовать вещей от корня, я верю. Надежда это - ответ так или иначе!

0
ответ дан 18 December 2019 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: