Kentavr16, Ещё более опытный увидит отсутствие закрывающей скобки во втором if и поймёт, что код нерабочий. if(!on &&(hour > 23 || hour < 7)){ if(!on &&(hour > 23 || hour < 7) {
NailsInMyBack, Такие задачи очень плохо решаются перебором в коде. Во-первых, в задаче используется вещественная шкала, а значит полный перебор невозможен в принципе. 9 удовлетворяет условию?, а 9.9?, а 9.99?, и т.д. Во-вторых, даже на целочисленной шкале у нас остаётся плюс/минус бесконечность, которую за конечное время перебрать невозможно.
То есть, задача в любом случае требует предварительного анализа и доказательства, что найденное компьютером решение корректно.
Так а где минимальный набор данных, на которых алгоритм работает неправильно?
Вы учитываете, что для работы двоичного поиска массив должен быть предварительно отсортирован по возрастанию?
Hfnas, Затраты минимальные. Начиная с MySQL 8.0 есть специальные функции UUID_TO_BIN() и BIN_TO_UUID().
В старых версиях UUID_TO_BIN можно заменить двумя функцииями, если гуид записан с дефисами. UNHEX(REPLACE(:guid, '-', '')) - на выходе BINARY(16).
Heinemann,Я бы разделил аутентификацию и авторизацию и вынес их в разные методы. Соответственно, в аутентификации - получить из базы хэш пароля и проверить пароль по этому хэшу (password_verify), в авторизации - получить права (роли) уже аутентифицированного пользователя.