С использованием переменных можно попроще сделать. В принципе, можно и без 3-го уровня вложенности обойтись, но так понятнее выглядит.
SELECT GROUP_CONCAT(__range)
FROM (
SELECT IF(__from = __to, __from, CONCAT(__from, '-', __to)) AS __range
FROM (
SELECT (@n + 1) AS __from, (id - 1) AS __to, @n := id AS __change
FROM (
SELECT id, @n := 0 FROM test ORDER BY id
) t
) t2
WHERE __to >= __from
UNION
SELECT CONCAT((@n + 1), '...') AS __range
) t3
К слову про другие дейтпикеры. Не каждый имеет возможность задать разный формат даты для показа в UI и для отправки на сервер, приходится добавлять обработку через onchange или changedate. А в данном есть опции altField и altFormat, это удобно.
?? полезный оператор. Еще бы сделали какой-нибудь оператор типа <?== $something ?>, который бы автоматически оборачивал выводимую строку в htmlspecialchars().
Вы бы сначала матчасть изучили, факты какие-нибудь поискали. Ну или хотя бы просто логически подумали над тем, что возможно не вы один до этого додумались, и значит есть какие-то причины, почему это не используется везде где только можно)
Чтобы задать уравнение, в точности повторяющее произвольную последовательность чисел, надо задать примерно столько же коэффициентов, сколько чисел в этой последовательности. В некоторых случаях можно задать меньше, если в последовательности есть повторяющиеся или похожие участки. Ваш пример с синусом — это ярко выраженный случай, значения повторяются в точности каждый период.
Кстати, можно задавать приближение не полиномами, а разложением в ряд синусов, это удобнее именно из-за их периодической природы. А еще можно приближать не точно, а примерно, выбрасывая малозначащие коэффициенты. И если применить это к изображениям, видео или музыке, то получаем JPEG / MPEG / MP3.
3 бита и троичная логика это не одно и то же. В троичной логике один бит имеет 3 значения. Здесь же используются двоичные биты, то есть 2 значения. И таких битов в одной ячейке памяти 3 штуки, то есть в ячейке может быть записано одно из 8 значений.
Какая-то скучная и бессмысленная лекция из универа. Половина капитанских советов, вторая половина непонятная или явно неправильная. Постоянно встречаются упущения нужных деталей "для упрощения объяснения".
Для человека наиболее важна простота использования инструмента.
Для человека наиболее важно решить задачу. Поэтому используются более сложные инструменты, если они позволяют эффективнее решать задачи.
Эволюция языков программирования привела к образованию двух групп
Это не 2 самостоятельные группы. Языки высокого уровня образовались из языков низкого уровня. Это следующий уровень абстракции.
Эволюция языков программирования показывает их постоянное усовершенствование, но за долгое время развития не упростила их понимания до того, чтобы, например простой торговец мог писать программы.
Так можно и про таблицу умножения сказать, мол, развитие математики не упростило ее понимание теми, кто не умеет считать. Или про квантовую физику, раз не каждый школьник ее понимает. Что мешает простому торговцу писать программы, если он изучит язык программирования?
путём интеграции малых компонентов (команд) в более крупные
Это называется создание функции или библиотеки. Языки более высокого уровня создаются для более высокого уровня абстракции, в первую очередь абстракции от железа/ОС. И это не приводит к повышению сложности языков программирования, как раз наоборот. PHP считается более простым, чем C++.
На рисунке представлено увеличение сложности… Как видно задачи с множеством простых элементов… удобно для выполнения компьютером.
Я тоже могу нарисовать рисунок, где будет видно совершенно обратное.
Если кто-либо начинает изучение программирования, он/она делает это с какой-либо целью, например для устройства на хорошо оплачиваемую работу. Эта цель может быть ответом на вопрос «а что далее ?».
Она не может быть ответом, так как из него совершенно непонятно, что же именно делать далее. Кроме того, одной только этой цели недостаточно. Программирование это такая наука, где нужно много думать и разбираться. Для этого нужно желание это делать, а чтобы желание не пропало, программирование должно хоть немного нравиться. Если не нравится, значит человек во многом не разберется, значит будет не очень хорошим разработчиком, значит и оплата будет не очень высокая.
А если надо сразу все свойства изменить? Например, менеджер открыл заявку, позвонил пользователю, уточнил информацию, поменял некоторые поля и нажал «Сохранить». Как правильно сделать рендеринг формы с данными, прием запроса, валидацию и сохранение?
Так в том-то и дело, что никак. Можно только равномерно размазать разницу в стоимости на разницу в правках. Чем больше мы дробим, тем меньше самостоятельной значимости у каждой из частей.
Какова ценность отдельной точки в красивой фотографии или картине? Какой вклад они вносят? Ведь если убрать один пиксел, то никто ничего не заметит.
Чтобы табуретка стала устойчивой, ей нужно минимум 3 ножки. Какой вклад одной ножки в устойчивость табуретки? Если убрать одну ножку, станет ли она менее устойчивой на треть?
Хотя мне не нужен программист, который пишет красивый код на доске, но мне нужен тот, кто способен быстро думать на ходу, под давлением, в одной комнате с другими.
Я один из тех, у кого не очень хорошо получается думать на ходу под давлением. Не могу одновременно думать и разговаривать. Думать имеется в виду думать над новой задачей с некоторой неизвестной информацией, всерьез, с погружением в контекст.
И я могу сказать, что это разные вещи.
Одно дело, когда знаешь проект, архитектуру, как все работает, и при обсуждении в голове возникают ассоциативные связи и выстраивается какая-то картинка. И другое, когда новая задача, незнакомая обстановка, надо представить задачу в воображении, а интервьюер то на столе что-нибудь подвинет, то что-нибудь спросит, то подсказку даст. Получается, что постоянно происходит отвлечение от контекста. Примерно как на той картинке, где чувак код парсера разбирает.
Это не нервы и не какая-то боязнь незнакомых. Просто у таких людей так работает мозг, за разговоры и за обдумывание новых данных отвечают разные участки, которые не могут одновременно разделять фокус внимания. Также тут нельзя представить, что все люди на собеседовании тебе знакомы и это нормальная рабочая ситуация. Мозг точно знает, что это незнакомый человек, и он стоит над душой ждет твоего решения, несмотря на то, что одна из мыслей утверждает обратное.
Пример
На одном собеседовании было задание развернуть связный список. А я последний раз их делал несколько лет назад в универе.
Я помню структуру, и написал примерный код, но получилась одна лишняя проверка на null, от которой я не сообразил как избавиться. Оказалось, что нужно было просто цикл с конца начинать.
В спокойной обстановке я бы представил список в воображении, во всех подробностях и в динамике, и сделал бы более оптимально. Но для этого надо переключиться, так сказать, с восприятия реальности на восприятие воображения.
Ну а как ответы помогут улучшить безопасность самого приложения, если оно пользуется абстракцией над файловой системой? Это больше вопрос окружения. К тому же, мне кажется, не стоит смешивать собеседования на позицию разработчика, тестировщика, и безопасника.
> А как правильно назвать используемые уравнения?
Не знаю, вы же математик) Я-то не математик, а просто программист.
> Почему? 1/2*2 = 1;
Не знаю, что означает 1, ответы такие:
y = 22, x = 5, N = 6*5*22 + 5 + 22 = 6*110 + 27 = 660 + 27 = 687
y = 36, x = 3, N = 6*3*36 + 3 + 36 = 6*108 + 39 = 648 + 39 = 687
> Без программы мучительно
Я вам советую изучить какой-нибудь язык программирования, например javascript, сможете писать программы какие вам нужно прямо в браузере. Для ваших целей ничего сложного не требуется, просто арифметические действия, за неделю можно разобраться.
На самом деле, такая ситуация могла произойти только в голове автора. Он сыплет умными вопросами, а интервьюер что-то бубнит в ответ, потому что никогда не задумывался о таких подробностях. Действительно, отдает некоторым высокомерием.
В реальности эти вопросы имеют смысл, только если работа связана с разработкой файловых систем и драйверов для них. В этом случае интервьюер после пары таких вопросов говорит «Ок, видно что вы в теме, давайте закончим с этой задачей».
Во всех остальных случаях (например, скопировать загруженный файл из временного каталога в постоянный) нужно вызывать системные функции, которые предоставляет ОС и язык программирования, и которые внутри вызывают функции этих драйверов.
А значит, кандидат не прошел собеседование, потому что, судя по вопросам, собрался писать свой низкоуровневый велосипед. «Вы нам не подходите, до свидания».
Вы так и не поняли, о чем вам все говорили в комментариях. Я вас попросил подробно изложить все шаги на конкретном примере, так как в методичке написано непонятно. Вместо этого вы почему-то написали какие-то отрывки, которые рассчитаны на то, что читатель вашего комментария уже хорошо знаком с вашей методичкой.
Могли бы хоть номера страниц указать, где формулы написаны.
1.9. Строим числовой ряд возможных номеров чисел по mod 4. сопоставимых с числом 4123:
1025 1029 1033 1037 1041
Откуда взялось начальное число?
1.10. Осуществляем обратный перевод предполагаемых номеров чисел в систему координат по mod 6:
683 691 695 699 703
Зачем? Как это используется в дальнейшем?
1.11. Определяем минимальные величины соответствующих корректирующих величин по каждому предполагаемому номеру рассматриваемого числа:
151315
Это по какой формуле рассчитывается? И как тут пробелы расставлены?
Числовой ряд корректирующих величин, обеспечивающий факторизацию посредством решения биквадратного уравнения определён:
У вас нет биквадратных уравнений. Биквадратное уравнение это уравнение четвертой степени вида ax^4 + bx^2 + c = 0. У вас четвертая степень нигде не встречается.
А теперь известно, это координаты числа, или численное выражение координат числа, номер которого, в формализованном виде, выражается формулой:
Nm = m*xmym+-xm+-ym;
То есть, по-вашему, у уравнения x*x - 2.2x + 1.2 = 0 нет корней?
[(x6+ym)=99];
[(x6*ym)=98];
Откуда взялись 99 и 98?
Это 1/2* x6 и 1/2*y6.
То есть, x6 и y6 это четные числа?
Получается, координаты числа вы все-таки не нашли? А как же ваши слова про азимут и прочее?
??
полезный оператор. Еще бы сделали какой-нибудь оператор типа<?== $something ?>
, который бы автоматически оборачивал выводимую строку вhtmlspecialchars()
.Вы бы сначала матчасть изучили, факты какие-нибудь поискали. Ну или хотя бы просто логически подумали над тем, что возможно не вы один до этого додумались, и значит есть какие-то причины, почему это не используется везде где только можно)
Чтобы задать уравнение, в точности повторяющее произвольную последовательность чисел, надо задать примерно столько же коэффициентов, сколько чисел в этой последовательности. В некоторых случаях можно задать меньше, если в последовательности есть повторяющиеся или похожие участки. Ваш пример с синусом — это ярко выраженный случай, значения повторяются в точности каждый период.
Кстати, можно задавать приближение не полиномами, а разложением в ряд синусов, это удобнее именно из-за их периодической природы. А еще можно приближать не точно, а примерно, выбрасывая малозначащие коэффициенты. И если применить это к изображениям, видео или музыке, то получаем JPEG / MPEG / MP3.
3 бита и троичная логика это не одно и то же. В троичной логике один бит имеет 3 значения. Здесь же используются двоичные биты, то есть 2 значения. И таких битов в одной ячейке памяти 3 штуки, то есть в ячейке может быть записано одно из 8 значений.
Какая-то скучная и бессмысленная лекция из универа. Половина капитанских советов, вторая половина непонятная или явно неправильная. Постоянно встречаются упущения нужных деталей "для упрощения объяснения".
Для человека наиболее важно решить задачу. Поэтому используются более сложные инструменты, если они позволяют эффективнее решать задачи.
Это не 2 самостоятельные группы. Языки высокого уровня образовались из языков низкого уровня. Это следующий уровень абстракции.
Так можно и про таблицу умножения сказать, мол, развитие математики не упростило ее понимание теми, кто не умеет считать. Или про квантовую физику, раз не каждый школьник ее понимает. Что мешает простому торговцу писать программы, если он изучит язык программирования?
Это называется создание функции или библиотеки. Языки более высокого уровня создаются для более высокого уровня абстракции, в первую очередь абстракции от железа/ОС. И это не приводит к повышению сложности языков программирования, как раз наоборот. PHP считается более простым, чем C++.
Я тоже могу нарисовать рисунок, где будет видно совершенно обратное.
Она не может быть ответом, так как из него совершенно непонятно, что же именно делать далее. Кроме того, одной только этой цели недостаточно. Программирование это такая наука, где нужно много думать и разбираться. Для этого нужно желание это делать, а чтобы желание не пропало, программирование должно хоть немного нравиться. Если не нравится, значит человек во многом не разберется, значит будет не очень хорошим разработчиком, значит и оплата будет не очень высокая.
Чтобы табуретка стала устойчивой, ей нужно минимум 3 ножки. Какой вклад одной ножки в устойчивость табуретки? Если убрать одну ножку, станет ли она менее устойчивой на треть?
Я один из тех, у кого не очень хорошо получается думать на ходу под давлением. Не могу одновременно думать и разговаривать. Думать имеется в виду думать над новой задачей с некоторой неизвестной информацией, всерьез, с погружением в контекст.
И я могу сказать, что это разные вещи.
Одно дело, когда знаешь проект, архитектуру, как все работает, и при обсуждении в голове возникают ассоциативные связи и выстраивается какая-то картинка. И другое, когда новая задача, незнакомая обстановка, надо представить задачу в воображении, а интервьюер то на столе что-нибудь подвинет, то что-нибудь спросит, то подсказку даст. Получается, что постоянно происходит отвлечение от контекста. Примерно как на той картинке, где чувак код парсера разбирает.
Это не нервы и не какая-то боязнь незнакомых. Просто у таких людей так работает мозг, за разговоры и за обдумывание новых данных отвечают разные участки, которые не могут одновременно разделять фокус внимания. Также тут нельзя представить, что все люди на собеседовании тебе знакомы и это нормальная рабочая ситуация. Мозг точно знает, что это незнакомый человек, и он
стоит над душойждет твоего решения, несмотря на то, что одна из мыслей утверждает обратное.Я помню структуру, и написал примерный код, но получилась одна лишняя проверка на null, от которой я не сообразил как избавиться. Оказалось, что нужно было просто цикл с конца начинать.
В спокойной обстановке я бы представил список в воображении, во всех подробностях и в динамике, и сделал бы более оптимально. Но для этого надо переключиться, так сказать, с восприятия реальности на восприятие воображения.
Не знаю, вы же математик) Я-то не математик, а просто программист.
> Почему? 1/2*2 = 1;
Не знаю, что означает 1, ответы такие:
y = 22, x = 5, N = 6*5*22 + 5 + 22 = 6*110 + 27 = 660 + 27 = 687
y = 36, x = 3, N = 6*3*36 + 3 + 36 = 6*108 + 39 = 648 + 39 = 687
> Без программы мучительно
Я вам советую изучить какой-нибудь язык программирования, например javascript, сможете писать программы какие вам нужно прямо в браузере. Для ваших целей ничего сложного не требуется, просто арифметические действия, за неделю можно разобраться.
В реальности эти вопросы имеют смысл, только если работа связана с разработкой файловых систем и драйверов для них. В этом случае интервьюер после пары таких вопросов говорит «Ок, видно что вы в теме, давайте закончим с этой задачей».
Во всех остальных случаях (например, скопировать загруженный файл из временного каталога в постоянный) нужно вызывать системные функции, которые предоставляет ОС и язык программирования, и которые внутри вызывают функции этих драйверов.
А значит, кандидат не прошел собеседование, потому что, судя по вопросам, собрался писать свой низкоуровневый велосипед. «Вы нам не подходите, до свидания».
Могли бы хоть номера страниц указать, где формулы написаны.
Откуда взялось начальное число?
Зачем? Как это используется в дальнейшем?
Это по какой формуле рассчитывается? И как тут пробелы расставлены?
У вас нет биквадратных уравнений. Биквадратное уравнение это уравнение четвертой степени вида
ax^4 + bx^2 + c = 0
. У вас четвертая степень нигде не встречается.То есть, по-вашему, у уравнения
x*x - 2.2x + 1.2 = 0
нет корней?Откуда взялись 99 и 98?
То есть, x6 и y6 это четные числа?
Получается, координаты числа вы все-таки не нашли? А как же ваши слова про азимут и прочее?