Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (12)

Лучшие ответы пользователя

Все ответы (22)
  • Безопасно ли работать с decimal из БД?

    @AlexKuznec
    Для вещественных чисел a и b проверка на равенство с учетом погрешности выполняется так:
    abs(a - b) < eps
    где eps - малое число, изображающее погрешность.
    В вашем случае я бы попробовал eps = 0,0001 или меньше.
    Ответ написан
  • Список часовых поясов для php?

    @AlexKuznec Автор вопроса
    Собрал нужный код, получилась такая функция, возвращающая массив для dropDownList() из Yii2 с элементами вида:

    'Asia/Krasnoyarsk' => '(UTC+07:00) Красноярск'

    Массив с двумерной сортировкой, сначала по сдвигу, потом по имени.
    Локализация пока слабовата, может быть поэтому IntlTimeZone class пока почти не документирован.

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

    /* robust list of timezones */
    function get_list_of_timezones($locale) {
    
        date_default_timezone_set('UTC');
    
        $identifiers = DateTimeZone::listIdentifiers();
        foreach($identifiers as $i) {
            // create date time zone from identifier
            $dtz = new DateTimeZone($i);
            // create timezone from identifier
            $tz = IntlTimeZone::createTimeZone($i);
            // if IntlTimeZone is unaware of timezone ID, use identifier as name, else use localized name
            if ($tz->getID() === 'Etc/Unknown' or $i === 'UTC') $name = $i;
            else $name =  $tz->getDisplayName(false, 3, $locale);
            // time offset
            $offset = $dtz->getOffset(new DateTime());
            $sign   = ($offset < 0) ? '-' : '+';
    
            $tzs[] = [
                'code'   => $i,
                'name'   => '(UTC' . $sign . date('H:i', abs($offset)) . ') ' . $name,
                'offset' => $offset,
            ];
        }
    
        \yii\helpers\ArrayHelper::multisort($tzs, ['offset', 'name']);
    
        // sort by offset
    //    usort($tzs, function($a, $b){
    //        if ($a['offset'] > $b['offset']) {
    //            return 1;
    //        }
    //        elseif ($a['offset'] < $b['offset']) {
    //            return -1;
    //        }
    //        elseif ($a['name'] > $b['name']) {
    //            return 1;
    //        }
    //        elseif ($a['name'] < $b['name']) {
    //            return -1;
    //        }
    //        return 0;
    //    });
    
        return array_column($tzs, 'name', 'code');
    }
    ?>
    Ответ написан
  • Возможно ли качественное самообучение математике?

    @AlexKuznec
    Я вот тоже хотел заниматься ИИ, поступил и закончил факультет прикладной математики и информатики (думал, что там больше программирования, но скорее, 80% математики).

    Школьная математика по сути "детский сад" по сравнению с там, что изучали даже на первом курсе. Не всегда по сложности, сколько по глубине понимания. Например, в школе говорят, что в аксиомы надо "верить", заставляют учить доказательства теорем, корней из отрицательных чисел не существует, у квадратных уравнений может быть 0, 1 или 2 решения и т.п. В универе говорят, что аксиомы можно придумывать самому и строить из них алгебры и теории, заставляют придумывать свои доказательства теорем (на основе аксиом), рассказывают про корни из отрицательных чисел (комплексные числа), что у квадратного уравнения всегда 2 решения (у кубического - 3, и т.д.). Плюс матрицы, логика, теория вероятности, теория игр (чистая математика, если что), графы, криптография...

    В итоге знания получаются весьма обширные, но не сильно глубокие и нужные конкретно мне. Большая часть из них забывается вскоре после экзамена)

    А вот когда делаешь свой собственный проект, начинается совсем другая история. Появляются вопросы, начинаешь искать ответы, в процессе учебы эти ответы могут появиться даже в неожиданных предметах, оценки "волшебным" образом начинают расти. Но главное, найденный ответ на собственный вопрос запоминается намного лучше, чем выученный ответ на еще не заданный вопрос)

    Поэтому самообучение через разработку собственного проекта и получается намного эффективней "тупо учебы". Об этом ваша цитата про "магистров и бакалавров". А вот практикующего профессора вряд ли кто-то заткнет по умениям и знаниям) Например, модуль сборки сферических панорам из отдельных изображений как раз каким-то профессором написан, и на его основе уже сделаны программы (фактически, графические интерфейсы в нему), многие даже платные) хотя сложное математическое ядро было разработано совершенно отдельным человеком.

    Насчет ИИ - так как большая часть обучения была математикой, то основная часть так называемого "ИИ" формулировалась в виде формул, зачастую не особо сложных. Машинное обучение преподавалось поверхностно, "для случаев, когда вы не можете составить формулы процесса". Например, какой-то фантазер строит робота с ручками и ножками, чтобы он мог защищать граждан от падающего астероида) Большую часть своего труда он потратит на придание ему человеческих функций, способности двигаться, целиться, анализировать происходящее. Потенциальный круг решаемых задач может стать значительно шире изначально задуманных, но скорость разработки будет крайне низкой, и, по большей части, не связанной с поставленной задачей. А "советский инженер" составит формулы движения астероида, формулы движения ракеты, сбивающей этот астероид, вычислит точку их пересечения, области, где эта точка недопустима (населенные пункты, стратегические объекты), исходя из этих данных построит сетку расположения радаров и пусковых установок (каких-нибудь шахтных), в итоге задача решена, "искусственный интеллект" в популярном понимании отсутствует, но вся система функционирует в автоматическом режиме без участия человека (на "чистой математике"), что как бы делает ее интеллектуальной :)
    Ответ написан
  • Как отключить логирование в yii2?

    @AlexKuznec
    Чтобы отключить совсем, попробуйте убрать строчку в конфиге
    'bootstrap' => ['log']

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

Лучшие вопросы пользователя

Все вопросы (16)