• Почему алгоритм Дейкстры корректен?

    @throughtheether
    human after all
    После выполнения алгоритма, мы получим, что кратчайшее расстояние до второй вершины равно 10.
    Вот здесь непонятно, поясните вашу мысль.

    Изначально (стартуем из вершины 1) у вас вершина 1 имеет ассоциированное число (длину пути, d[1]) 0, она же находится во множестве посещенных вершин. Длина пути до других вершин - бесконечность.
    Для всех ребер, соединяющих множества посещенных и непосещенных вершин (т.е. для ребер 1-2 и 1-3) рассмотрим суммы d[u]+w(u,v), где d[u]-длина кратчайшего пути до вершины u, w(u,v) - вес (длина) соответствующего ребра. Минимальная сумма наблюдается для ребра 1-3, соответствующего пути 1,3. Добавляем 3 в посещенные.
    Снова, для всех ребер, соединяющих множества посещенных и непосещенных вершин (т.е. для ребер 1-2, 3-2) рассматриваем соответствующие суммы (10 и 2), выбираем минимальную, т.е. добавляем вершину 2 в путь (и во множество посещенных вершин), имеющий вид 1,3,2. Так как непосещенных вершин не осталось, завершаем работу алгоритма.
    Ответ написан
    2 комментария
  • Почему алгоритм Дейкстры корректен?

    На первой итерации вес вершины 1 равен 0. От нее идем к соседям. До 3 вершины вес равен 1. До 2 вершины вес равен 10. Больше к 1 вершине не идем, она с минимальным весом. Следующая оставшаяся с минимальным из соседей - это 3. Выбираем её. Путь только в одну сторону - к 2 - и вес равен 2 (суммируется предыдущий вес). Раньше дотуда был вес 10, но так как наш новый вес меньше, заменяем на меньший. Выбираем вершину 2, а от нее уже некуда идти.

    Итого кратчайший путь до вершины 2 составляет 2 и идет через соседа 3 (если бы мы запоминали это во время итераций). По ребру с весом 10 вообще ничего не пойдет в данном случае.
    Ответ написан
    1 комментарий
  • Что нужно сделать, чтобы подключиться к БД Oracle как SYSDBA?

    @protven
    export ORACLE_SID=<имя экземпляра БД>

    sqlplus / as sysdba

    Выполнять надо из под пользователя состоящего в группе dba, ну или из под того, из под которого ставились.

    PS Strongly recommend - учите матчасть. Начните с гайдов на сайте вендора.
    Ответ написан
    2 комментария
  • Как развернуть Tomcat на сервере?

    @bobzer
    Java EE Developer
    Абсолютное большинство услуг хостинга подразумевают возможность развертывания приложений, написанных на PHP, причем без доступа к веб-серверу. Это связано с тем, что они сами разворачивают веб-сервер, который обслуживает одновременно множество аккаунтов пользователей (т.е., много сайтов, принадлежащих разным владельцам, разворачиваются на одном веб-сервере). Если у вас приложение на PHP, то, скорее всего, Вам на самом деле не нужен Tomcat, можно обойтись стандартным PHP-хостингом.

    Но, раз уж Вы написали вопрос в разделе Java, видимо требуется развернуть приложение на Java. Услуг хостинга таких приложений очень мало, в большинстве случаев приходится арендовать виртуальный (или даже "железный") сервер, и на нем разворачивать самостоятельно любую инфраструктуру. Но можно найти и альтернативы. В конце прошлого года компания Infobox анонсировала новый облачный хостинг с поддержкой Java, причем Tomcat у них уже преднастроенный, добавляется в пару кликов. У меня как раз Java-проект готовился к запуску, и я решил попробовать. Пошел второй месяц: полет нормальный, денег потрачено менее 300 рублей (правда и нагрузки большой пока не было). У них есть свой хаб на Хабре, найдите его среди компаний, почитайте - они в последнее время только про этот хостинг и пишут.
    Ответ написан
    4 комментария
  • Как решить проблему с созданием сессии в Hibernate?

    @GChar
    Добрый день! Недавно боролся с той же проблемой, у меня Hibernate 4.3. Помог следующий код:

    public class HibernateUtils {
    
        private static final SessionFactory sessionFactory = buildSessionFactory();
        private static ServiceRegistry serviceRegistry;
    
        private static SessionFactory buildSessionFactory() {
    
            Configuration configuration = new Configuration();
            configuration.configure();
            serviceRegistry = new StandardServiceRegistryBuilder()
                    .applySettings(configuration.getProperties()).build();
            return configuration.buildSessionFactory(serviceRegistry);
        }
    
        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }
    }
    Ответ написан
    Комментировать
  • Почему востребован Java?

    Foror
    @Foror
    Графоман
    >причина популярности Java
    Как-то так:

    - простой синтаксис, без лишних сложностей - я лет 8 на С++ не програмил, но в последнее время, бывает гляну на С++ код и просто тихий ужас :) А альтернатив С++ просто нет, только Java. Нет, конечно есть всякие Rust, D, но это пока для гиков поиграться.

    - удобная организация библиотек и качественные инструменты для управления зависимостями (остальные только-только начинают догонять) => без головняков собирать большие проекты и подключать сторонние либы

    - проработанная и шустрая многопоточность, в том числе так называемые goroutine, особенно в последних версиях (7-8)

    - JVM, на которой можно легко програмить на Scala, Groovy, Python, Ruby, JavaScript, Kotlin, Ceylon и т.д. и т.п. Если не нравится синтаксис Java. При этом то, что запрограмил на Python будет доступно из Java, и наоборот. Это очень круто. Но все еще высок порог входа, чтобы управлять всем этим хозяйством. Я вот, как раз пилю кое-что в данном направлении, чтобы обрушить этот порог :)

    - Android

    - (Инди) игры (Minecraft, Delver, Lineage - тысячи их)

    На десктопах Java нет, лишь из-за C# и Windows, а так посмотрите InteliJ IDEA 13 это пример насколько может быть сексуальным десктопный интерфейс на Java.

    И еще, те кто пытался писать на Ruby, затем переделывали на Java/Scala, т.к. 1 сервер на Java, проще, чем 10 серверов на Ruby при той же нагрузке.

    >скорость выполнения программ крайне низкая
    Это миф, тянущийся из бородатых 90-х. Современные HTTP серверы построенные на Java по производительности на уровне C/C++ реализаций. Но памяти конечно жрут больше, но это отдельная тема и в наше время это не такая уж и проблема.
    Ответ написан
    1 комментарий