Когда оператор космического корабля используется вне вида?

Горячая линия BSNL и штат обычно знакомы с MS Windows и не могут быть слишком полезными, но если они будут, то это будет приятный сюрприз.

я предполагаю что: модем маршрутизатор ADSL ; Вы - двойная загрузка с MS Windows; и у Вас нет проблемы при соединении через MS Windows.

  • Нажимают на значок администратора сети в правом верхнем углу Вашего экрана.
  • Выбирают "edit connections" из выпадающего меню.
  • Нажимают на "DSL", и затем на "добавляют". (Вы, возможно, запросили для обеспечения пароля входа в систему Ubuntu в этом или некоторой точке.) Можно дать соединению имя кроме соединения DSL1, если Вы желаете.
  • Вводят Ваш идентификатор пользователя и пароль и "доступный всем пользователям".

, Который должен сделать это. Если Вы не находитесь на неограниченном плане, Вы не можете хотеть соединяться "автоматически".

9
задан Andrew Grimm 20 January 2011 в 11:45
поделиться

3 ответа

Я пишу систему управления для робота Джо, который хочет уйти Роботизировать Мэри и подзарядить ее. Они перемещаются по целым точкам на линии. Джо начинается с $ j и может пройти 1 метр в любом направлении за единицу времени. Мэри стоит на $ m и не может пошевелиться - ей нужно подзарядиться! Управляющая программа будет выглядеть так:

while ($m != $j) {
    $j += ($m <=> $j);
}
7
ответ дан 4 December 2019 в 14:29
поделиться

Оператор <=> может быть полезен для алгоритма двоичного поиска . В большинстве языков программирования нет оператора, выполняющего трехстороннее сравнение, что требует выполнения двух сравнений на итерацию. С <=> вы можете сделать только один.

sub binary_search {
    my $value = shift;
    my $array = shift;
    my $low   = 0;
    my $high  = $#$array;

    while ($low <= $high) {
        my $mid = $low + int(($high - $low) / 2);

        given ($array->[$mid] <=> $value) {
            when (-1) { $low  = $mid + 1 }
            when ( 1) { $high = $mid - 1 }
            when ( 0) { return $mid      }
        }
    }

    return;
}
5
ответ дан 4 December 2019 в 14:29
поделиться

Любым методом сравнения. Например, у вас может быть сложный объект, но у вас все еще есть определенный "порядок", поэтому вы можете определить для него функцию сравнения (которой у вас нет для использования внутри метода сортировки, хотя это было бы удобно):

package Foo;

# ... other stuff...

# Note: this is a class function, not a method
sub cmp
{
    my $object1 = shift;
    my $object2 = shift;

    my $compare1 = sprintf("%04d%04d%04d", $object1->{field1}, $object1->{field2}, $object1->{field3});
    my $compare2 = sprintf("%04d%04d%04d", $object2->{field1}, $object2->{field2}, $object2->{field3});
    return $compare1 <=> $compare2;
}

Конечно, это полностью надуманный пример. Однако в исходном коде моей компании я нашел почти в точности то, что указано выше, для сравнения объектов, используемых для хранения информации о дате и времени.

Еще одно использование, которое я могу придумать, - это статистический анализ - если значение повторно запускается по списку значений, вы можете определить, выше или ниже значение арифметической медианы набора:

use List::Util qw(sum);
# $result will be
#   -1 if value is lower than the median of @setOfValues,
#    1 if value is higher than the median of @setOfValues,
#    0 if value is equal to the median
my $result = sum(map { $value <=> $_ } @setOfValues);

Вот еще один, из wikipedia : «Если два аргумента не могут быть сравнены (например, один из них - NaN) , оператор возвращает undef.

2
ответ дан 4 December 2019 в 14:29
поделиться
Другие вопросы по тегам:

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