Задать вопрос
  • Как свапнуть строки в си?

    @res2001
    Расшифруйте общественности что вы имеете ввиду под "свернуть". Такой операции ни над указателями ни над строками не существует в природе.
    Знаю операцию "свертка", но она мало применима к строкам и указателям :)
  • ABCPascal.Net. Олимпиадная задача, как ускорить код?

    @res2001
    Так же можно подумать над тем, что бы хранить крокодилов в структуре белее подходящей для задачи.
    Например можно использовать для клеток массив структур, для клетки занятой крокодилом хранить кроме стороны куда он убегает еще и 4 индекса соседних крокодилов. В таком случае проверки будут тривиальными без обхода. Массив можно заполнять сразу при вводе.
    Думаю можно придумать и другие варианты структур данных, которые позволят обходится без дорогостоящих обходов.
  • ABCPascal.Net. Олимпиадная задача, как ускорить код?

    @res2001
    Делать массив a типа integer вовсе не нужно, достаточно char (не знаю есть ли в паскале char, но его аналог точно должен быть) и хранить там те же значения, что и вводятся из входного файла. char занимает 1 байт, а integer - 4, а в задаче, на сколько я понимаю, еще присутствует и ограничение на использование памяти. На скорости проверок это ни как не скажется, но ввод у вас будет происходить быстрее.
  • ABCPascal.Net. Олимпиадная задача, как ускорить код?

    @res2001
    В задаче не сказано где находится Робинзон. Ведь логично, если крокодил побежит на Робинзона, то ему кирдык.
    Ну да ладно.
    Ясно, что ваш тривиальный вариант простым перебором самый долгий.
    Нужно усложнять алгоритм. Например если начать с внешних сторон острова, то минимум одна из сторон всегда открыта для крокодила (для южной стороны острова всегда открыто южное направление) и можно ничего не проверять. И вторая сторона то же сначала открыта, но в процессе может быть закрыта (для южной стороны и обхода с запада на восток сначала открыта западная сторона). Если натыкаемся на крокодила, который убегает в сторону обхода (на восток), то придется начать обходить сторону с другой стороны и в противоположном направлении, если при этом встретится крокодил, бегущий на запад, то эти оба крокодила остаются на острове.
    Крокодилов бегущих на север на данном этапе оставляем (можно для таких завести отдельный список, чтоб в дальнейшем снова не обходить все клетки).
    Можно использовать промежуточные списки для хранения уже пройденных клеток с крокодилами, но по которым решение сразу принять не вышло.
    Так же наверное ускорят процесс промежуточные булевы вектора, значения в которых будет означать свободно ли направление для побега или нет.
    И т.д и т.п.
    И вариантов расположения крокодилов много. Например: могут образовываться замкнутые циклы из более чем 2 крокодилов, когда несколько крокодилов так выстраиваются, что каждые 2 отдельно взятые не бегут друг на друга (т.е. теоретически могут убежать), но если рассматривать всю группу ни один крокодил убежать не может.
    Удачи!
  • ABCPascal.Net. Олимпиадная задача, как ускорить код?

    @res2001
    Напишите задачу, которую решает код.
  • Mongoose не принимает файлы более 17 мб, как это изменить?

    @res2001
    dark_king_13, Как - принцип я описал выше.
    Подробностей не скажу, т.к. веб разработкой не занимаюсь и с mongoose дела не имел.
    Пришел по тегу mongodb. С mongodb немного знаком на так сказать "низком" уровне.
  • Mongoose не принимает файлы более 17 мб, как это изменить?

    @res2001
    На сколько знаю - это ограничение в mongodb - 1 json документ может быть не больше 16 мб. По моему его никак не изменить.
    https://docs.mongodb.com/manual/core/document/#doc...
    Не храните картинки в базе, храните их в файлах на диске, а в базе - имя файла.
  • Найти кратчайший путь?

    @res2001
    Это задача поиска кратчайшего пути на графах.
    На фрилансе вам реализуют за недорого, а тут только помогут в случае появления каких-то вопросов.
  • При поднятии openvpn сервера в Микротике там есть Add default route для чего это используется, чтобы подключенные vpn клиенты имели вход в интернет?

    @res2001
    2 варианта:
    1.Опция Add default route выключена
    Если у клиентов до подключения к ВПН интернет уже есть, то он же и останется, тот же самый, не через ВПН.
    Если у клиентов до подключения к ВПН интернета нет, то его и не будет.
    2.Опция Add default route включена
    Весь внешний трафик (трафик не для внутренней локальной сети) будет перенаправляться на ВПН сервер.
    Дальше все уже зависит от сервера, если на нем есть доступ к инету, то и клиенты его получат.
    Тут как раз возможен вариант с отваливанием ВПН, о котором я писал во втором абзаце ответа. Это не большая проблема, просто надо быть готовым, и она не обязательно появится все зависит от расположения ВПН сервера относительно клиентской сети.

    Если на ВПН сервере инета нет, то и у клиентов то же не будет, даже если до подключения к ВПН интернет у клиентов был.
  • Как исправить ошибку 0xc000021 при загрузке Windows 10?

    @res2001
    Переустановка - очень и очень крайняя мера

    Обычно я в таких случаях отвожу на поиск и исправление ошибки, например 3-4 часа, если не удается вылечить - переустанавливаю. Порой в винде случается такая хрень, что можно неделями разбираться, а итог один.
  • В чем заключается ошибка?

    @res2001
    Хорошо бы текст ошибки и указать строку на которую ссылается ошибка.
  • Почему pow возвращает разные значения от одинаковых float значений?

    @res2001
    И еще момент. При вызове printf все числа с плавающей точкой преобразуются в double (т.е. результат powf будет преобразован в double), так что тут происходит еще одна конвертация с возможным искажением результата. Пожалуй побитовое сравнение результатов в вашем случае будет оптимальней.
  • Почему pow возвращает разные значения от одинаковых float значений?

    @res2001
    аналогично и для powf, только результат будет float и использовать надо не uint64_t, а uint32_t.
  • Почему pow возвращает разные значения от одинаковых float значений?

    @res2001
    // Тут конвертация float->double и вызов pow, аргументы в double
    printf ("%lf\n", pow (m,n)  );
    printf ("%lf\n", pow (3.0,54.0) );
    
    // Тут конвертация double->float и вызов powа, аргументы во float
    printf ("%lf\n", powf (m,n)  );
    printf ("%lf\n", powf (3.0,54.0) );

    По идее 3 и 54 точно представляются и во float и в double. Теоретически результаты обоих вызовов pow и powf должны быть идентичны между собой (т.е. pow(m, n) == pow(3,54) и powf(m, n) == powf(3,54)).
    Попробуйте явно задать количество выводимых цифр, что-нибудь типа: %30.5f
    Как вариант, попробуйте сравнить 2 результата побитово. Примерно так:
    double a = pow(m, n);
    double b = pow(3.,54.);
    uint64_t *ba = (uint64_t*)&a;
    uint64_t *bb = (uint64_t*)&b;
    if (*ba == *bb) 
      printf("Равны\n");
    else
      printf("Не равны\n");
  • Почему pow возвращает разные значения от одинаковых float значений?

    @res2001
    У вас нигде не используется powf. Вызовите ее явно, тогда будет с чем сравнить.
    Сейчас оба варианта вызывают функцию принимающую аргументы в double, только в первом вариант ваши floatы сначала преобразуются в double, а затем вызывается функция с double.
  • Как сделать проброшенный порт видимым извне?

    @res2001
    lytta, На ssh сервере (т.е. на Адрес_Машины_B) нужно добавить параметр в /etc/ssh/sshd_config:
    GatewayPorts yes

    После этого Liste-IP, видимо можно не указывать.
  • Как можно диск ужать?

    @res2001
    EmachinesDIMA,
    пожалуйста читайте внимательнее: "Виртуалка".

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

    Если же вам в конечном итоге нужно уменьшить виртуальный диск в гипервизоре, то после того как вы уменьшите раздел внутри виртуалки уже можно будет спокойно уменьшить и виртуальный диск в гипервизоре средствами гипервизора.
  • Проблема доступа к устройству подключенному к "мультимодему". Нестабильный пинг. В чем проблема?

    @res2001
    Пропадает только пинг? Службы работающие на устройствах отвечают? Сами устройства работают?
    Не очень понятно из вопроса, устройства к которым пропадает пинг находятся снаружи (подключаются к модему через сотового оператора)? Если да, то возможно просто увеличилось время ответа. Попробуйте увеличить время ожидания ответа у пинга. В сотовых сетях может быть довольно большая задержка и она может увеличиваться в зависимости от текущей нагрузки на сеть.
    Так же для диагностики используйте traceroute для выяснения на каком из промежуточных узлов возникла проблема.
  • При удалении MS Visual C++ 2017 пишет по завершении "установка завершена". Что делать?

    @res2001
    Константин Цветков, Понял :-)

    RedAlph, Попробуйте этот рецепт от микрософт: https://support.microsoft.com/ru-ru/help/17588/win...
    Вообще у микрософта полно разных версий msvc runtime и они обычно вполне уживаются друг с другом.
    На сколько я понял вам нужно в итоге установить версию 2015, а она ругатся на 2017.
    Удалите 2017, перезагрузитесь, установите 2015. После этого можно снова установить 2017, если нужно.
    К фразе "установка успешно завершена" я бы особо не цеплялся. Скорее всего программа сделала то что нужно, просто удаление/изменение/восстановление выполняются одной программой.
    С ошибкой попробуйте побороться с помощью утилиты по приведенной ссылке.
  • Почему память не может быть 'read'?

    @res2001
    Karpion,
    Серверная программа не должна аварийно завершать работу. Хотя бы потому, что у неё обычно много запросов в работе.

    Напишите обо этом в поддержку mongodb :)