Ответы пользователя по тегу Java
  • Записать условие, которое является истинным?

    @bizon2000
    Java-программист
    Рассмотрим выражение вида
    ((X + 1) % 5) * ((X + 2) % 5) * ((X + 3) % 5) * ((X + 4) % 5)

    Если X кратен 5, то значение выражения будет равно 1*2*3*4 = 24, иначе оно будет равно 0, т.к. один из сомножителей будет равен 0.
    Учитывая эти рассуждения решением будет следующее выражение
    (((X + 1) % 5) * ((X + 2) % 5) * ((X + 3) % 5) * ((X + 4) % 5) +
     ((Y + 1) % 5) * ((Y + 2) % 5) * ((Y + 3) % 5) * ((Y + 4) % 5) +
     ((Z + 1) % 5) * ((Z + 2) % 5) * ((Z + 3) % 5) * ((Z + 4) % 5)
    ) == 24

    Т.к. если все 3 значения не кратны 5, то сумма будет равна 0, если ровно одно значение будет кратно 5, то сумма будет равна 24, а если более, чем одно значение кратно 5, то сумма будет 48 или 72.
    Так что, как видите, достаточно одного оператора сравнения.

    PS: Ваше решение выдает неправильное значение в случае, если все три значения кратны 5.
    Ответ написан
    1 комментарий
  • Как сравнивать две произвольные таблицы?

    @bizon2000
    Java-программист
    Сливаем две таблицы
    SELECT * FROM tbl1
    UNION ALL
    SELECT * FROM tbl2

    затем группируем по всем полям и выбираем те группы, которые содержат более одной записи
    SELECT *
        FROM (SELECT * FROM tbl1
              UNION ALL
              SELECT * FROM tbl2
             )
        GROUP BY field1, field2, ...
        HAVING COUNT(*) > 1

    Такой запрос не требует индексов и будет очень эффективен даже на очень больших таблицах
    Разумеется, решение основано на предположении об уникальности записей в каждой из таблиц
    Ответ написан
    Комментировать
  • Почему в php и java получаются разные md5?

    @bizon2000
    Java-программист
    Вот здесь: utf8_string.getBytes() не задана явно кодировка UTF-8, поэтому используется дефолтная кодировка платформы. Если нужно, чтобы PHP-скрипт выдавал такую же сумму, как java, задайте в нем соответствующую вашей платформе кодировку, в вашем случае это "ISO-8859-1"
    Ответ написан
    2 комментария