Ну, я поэтому и сказал, что необязательно делать это через дикий матан с зубодробительными абстракциями. В целом-то у вас объяснения получились неплохо, баланс между строгостью и наглядностью выдержан удачно. Главное теперь — реструктурировать это немножко и вынести скрытые элементы сакрального знания наружу, чтобы текст мог воспринимать ученик, впервые в жизни видящий все эти термины и закорючки. Думаю, это вполне достижимо без переусложнения.
Тогда хочу отметить ещё одну особенность текста, которая ощутимо мешает разбираться в новой теме. Прошу прощения за многословность, просто это всё скорее на уровне ощущений, и очень трудно сформулировать конкретные замечания. Я бы сказал, что тексту не хватает какой-то целостности, связности, последовательности изложения. Обычно учебники построены так, чтобы каждый факт, каждый термин по ходу изложения полностью опирался на уже изученный материал и только на него. Здесь же (как в предыдущей статье, так и в этой) встречаются формулировки, которые изначально остаются непонятными, а проясняются только потом, после прочтения дополнительных абзацев.
Постараюсь пояснить на конкретных примерах.
1.
Произведения двух векторов, например . Это новый объект!
Вы пишете "например", но в качестве примера даётся очень специфический объект. Не какие-то произвольные два вектора, а именно базисные. И становится непонятно, это всё-таки пример и можно взять любую другую пару векторов (но тогда слова "новый объект" уже будут неверными, ибо пара коллинеарных векторов даст скаляр), или же тут обязательно должны быть базисные векторы. Требуется дочитать всю главу про произведение и его свойства, чтобы понять, как бивекторы связаны с геом.произведением и в каких случаях какие дают результаты. Но если мы сами разобрались, то сам этот пример выше оказывается ненужным, он нам никак не помог.
2.
Вы определяете геометрическое произведение как сумму скаляра и бивектора. А бивектор — как разницу геометрических произведений. Получается рекурсивное определение, где два термина просто ссылаются друг на друга, но ни тот, ни другой не объяснён. Опять же, только после полного прочтения почти всей статьи можно сделать осторожные выводы, что бивекторы можно формально определить просто как ориентированные пары, ввести попарные бивекторные произведения базисных векторов в качестве базиса для бивекторов и исходя из этого сообразить, как оно работает уже для произвольной пары векторов. И попутно догадаться, почему же в формуле применяется геометрическое произведение для базисных векторов, а не бивекторное.
3.
Что такое псевдоскаляр ?
Это просто результат последовательного геометрического умножения трех ортогональных базисных векторов.
<…>
Умножая его на (вектор, перпендикулярный этой плоскости), мы получаем новый объект высшего ранга в 3D — тривектор.
Весь абзац здесь сформулирован так, словно мы уже полностью разобрались, что такое геометрическое произведение и знаем все его свойства, а тут просто повторяются уже известные истины на конкретном иллюстрирующем примере. Последнее из процитированных предложений, насколько я понимаю, должно было служить определением тривектора. Вместо этого оно выглядит так, будто мы уже прекрасно знаем всё о би- и тривекторах, и просто рассматриваем этот пример как подтверждение и закрепление пройденного материала. "Вот взяли то, проделали это, и — видите? — получилось такое-то." Чисто формально вроде как подход имеет право на существование. Но слишком уж резко он контрастирует со всеми общепринятыми учебными практиками, и потому порождает сомнения и недоумения: а что, я действительно уже всё это должен был знать и понимать? Невольно лезешь обратно в начало документа в поисках пропущенного или недопонятого материала, но ничего не находишь… В общем, такой тонкий момент, что вроде в тексте всё правильно — но производит совсем не тот эффект, который нужно.
____________
Мне кажется, подачу материала необходимо кардинально переработать. Подойти гораздо более формально, задать базовые определения — необязательно через адский матан, просто как факт того, что вот такая штука существует, называется так-то и обладает такими-то главными свойствами. И дальше уже опираться на этот фундамент.
К примеру, для меня наиболее ключевыми объектами оказались би- и тривекторы. Поэтому я бы дал им определения в самом начале. Для начала хотя бы просто как условные ориентированные пары/тройки векторов. Показать, как с этими объектами работать, как произвольная пара векторов формирует бивектор, который можно представить как сумму трёх компонентов, каждый из которых строится из базисных векторов исходного трёхмерного пространства как попарные произведения , именно так, через крышечку. Аналогично про тривекторы.
Потом уже на основе этого вводится пространство , и в нём — геометрическое произведение как сумма уже известных нам объектов. Дальше становится видно, как произведение базисных векторов равно бивекторам и тривектору, пишем, что по этой причине, и ещё по той, что для нас геометрическое произведение важнее, проще писать всё через него.
Ну и так далее. То есть главное — не заставлять продираться сквозь текст с оставшимися в тылу непонятными вещами.
Наконец-то я смог добраться до этой статьи. Спасибо за разъяснения; в принципе, примерно такая картина у меня самого и сложилась, и тоже по аналогии с комплексными числами.
Собственно, я именно это и имел в виду, когда упоминал тензорное домножение на парный элемент. То есть сложение скаляра с вектором выводит нас из двух отдельных пространств и в новое пространство . Скаляр конвертируется в элемент этого нового пространства с нулевой векторной компонентой: было число 5, стал элемент [5, (0,0,0)]; а вектор, соответственно, в элемент с нулевой скалярной компонентой: (1,2,3) -> [0, (1,2,3)]. И дальше эти элементы нового пространства складываются по стандартным привычным правилам, покомпонентно. Ну и бивекторы-тривекторы аналогично.
Я бы в статье ещё предложил расписать явным образом, как так получается, что сначала мы через "стыковку" обозначаем геометрическое произведение, а потом через ту же "стыковку" для уже получаются бивекторы, которые до этого обозначались через . Да, можно додуматься самостоятельно, что скалярное произведение ортогональных векторов равно нулю, и поэтому . Но всё же когда речь идёт о введении базовой терминологии, имеет смысл такие отклонения в обозначениях подчёркивать явным образом.
Главное непонимание (по крайней мере, у меня) было связано с тем, что нет почти ни одного явного определения. Даже банального: с какими пространствами мы вообще работаем и как устроены всякие операции. Сначала говорится про обычные векторы. Тут же вопрос: сколько измерений, над каким полем? Не сказано. ОК, видимо, произвольные абстрактные. Потом речь идёт про скалярные и векторные произведения, что тут же сужает область определения до трёх или семи измерений; видимо, всё-таки три, ибо 7 — экзотика. Дальше вводится геометрическое произведение, которое, цитирую, "естественным образом содержит в себе обе эти операции", и приводится формула , где операция никак не определяется (вернее, определяется, но рекурсивно, через само же геометрическое произведение). Вынужденно делаю предположение, что раз сказали "содержит обе операции", а первая часть суммы — скалярное произведение, то вторая — это векторное произведение. Странно, что не стандартным крестиком умножения, но предположим. И тут же вопрос: каким макаром мы умудряемся складывать скаляр с вектором? Нельзя просто спрятаться за ответом "это формальная сумма", должен быть конкретный оператор "плюс", действующий из в какое-то другое пространство. Но в какое? Как устроена эта операция, какие у неё свойства? Непонятно. Предположил для себя, что скаляр и вектор тензорно домножаются на единичный вектор соответствующего партнёра и уже в результирующем 4-мерном пространстве оба суммируются. Но верна ли эта картинка — без понятия. Читаем дальше, и выясняется, что — это всё-таки не векторное произведение, а какая-то хтонь неведомая, возвращающая бивектор. Здравствуй ещё один неизвестный термин, а главное, это по-прежнему не объясняет, каким образом этот бивектор складывается со скаляром. Ну, наверное, так же, как я выше предположил, разве что вместо получается, скорее всего, (опять сомнения). Далее вводится "псевдоскаляр". Что это вообще такое? Почему "скаляр" и почему "псевдо"? Что за ? Выглядит как введённое выше "геометрическое произведение", но применённое к трём векторам. Но как? Ведь первое произведение вернёт "сумму скаляра с бивектором", и уже эту дурь надо будет умножать на третий вектор. А такой операции у нас не предусмотрено. Дальше этот псевдоскаляр , кем бы он ни был, то ли умножается на , то ли работает как функция с аргументом. Опять никаких определений, гадайте сами…
И так далее, и тому подобное. Буквально на каждом шагу такие вот спотыкалки. Какие-то вещи более-менее угадываются или предполагаются, какие-то проясняются задним числом после прочтения большей части статьи, а какие-то так и остаются вечной загадкой. В итоге получается не чтение, а сплошное гадание.
Я понимаю, что одна статья не может покрыть всё. Потому и говорю: если все эти определения есть где-то в другом месте, то надо дать в начале текста ссылку, по которой можно ознакомиться с базовыми терминами, необходимыми для понимания текста.
А почему нет? Вполне уместно было бы предупредить читателя, что для понимания материала необходимо ознакомиться с такими-то статьями. Теги — это, конечно, хорошо, но, во-первых, они в самом конце; во-вторых, они предполагаются для обозначения тематики, а не для указания областей знаний, которыми должен владеть читатель.
Формат Хабра не предполагает неявных взаимосвязей между постами, и если такая связь имеется, то считается хорошим тоном об этом явно сообщать. Глупо предполагать, что читатель предварительно полезет в профиль автора и начнёт перечитывать все публикации от начала времён. А если это был не один автор, а коллектив?
Пример с поиском функций: я гораздо быстрее нашёл их в подсвеченном коде, потому что во втором подсвечены практически только комментарии — ну глаз в первую очередь за них и зацепился, а остальной текст весь сплошняком серый, надо вчитываться, что там где.
Пример с retunr: а с какой радости несуществующий идентификатор оказался подсвеченным красным цветом? Мне не попадалось редакторов, где расцвечивался бы дефолтный текст, не подпадающий ни под одно правило. Если сами задали такую оцветовку — сами себе Буратины.
Рекомендация не подсвечивать ключевые слова вообще непонятна: эти цвета позволяют моментально идентифицировать основные синтаксические конструкции языка. Не говоря уж о визуальном предупреждении, если попытаешься создать переменную или функцию с именем, совпадающим с каким-то редко используемым и потому забытым (или недавно появившимся) ключевым словом.
Я имею в виду не исторические коммиты, которые, как я уяснил из статьи, создаёт jj. А выборочные правки, которые я сам в любой конкретный момент могу понадёргать и закоммитить, безотносительно того, в каком порядке эти правки вносились.
К примеру, у меня отладочная сессия, я пихаю в код кучу вспомогательных инструкций, нахожу ошибки, исправляю их, добавляю новых отладочных инструкций, нахожу и исправляю ещё что-то… В какой-то момент решаю закоммитить все исправления, а отладочный код не коммитить, но и не удалять, а просто оставить его как текущие незакоммиченные изменения. В гите я делаю add -up и точечно говорю: вот это принять, а вот это отклонить. То, что принял, войдёт в итоге в новый коммит, а остальное останется как временное локальное состояние.
Суть как раз в этом "почти". Делают гигантский резервуар, и из немыслимого множества нейтрино, пролетающих насквозь через весь объём, одно-два возьмут да и прореагируют, а детекторы это отловят.
Переливаем обратно. Берем ложку из второго, в ней [0.01A, 0.1B]
Неправильно, у вас в сумме тогда получится 0.11, а ложка у нас объёмом 0.10. И результирующие объёмы жидкости в стаканах у вас получаются разными (1.01 в одном, 0.99 в другом).
Поэтому на самом деле обратно у нас переливается 0.10 в пропорции 10:1, то есть [1/110 A, 10/110 B]. И в стаканах окажется: [9/10+1/110 A, 10/110 B] = [100/110 A, 10/110 B]; и [1/10-1/110 A, 1-10/110 B] = [10/110 A, 100/110 B]. Видим, что соотношение получилось одинаковое.
Ну вот лично я воспринял это как синоним "на всех". Дескать, с каждой банки сняли наклейку, все три перемешали, и налепили как попало обратно, никак не контролируя, что получилось. И дальше я безуспешно ломал голову, пока не сдался и не прочёл ответ, и оказалось, что условие было понято неправильно. Было обидно, что из-за такой мелочи лишился удовольствия решить задачу.
Скажем, в задачах про лжецов всегда явно подчёркивают, что этот человек не просто лжец в "обиходном" смысле, а что он в принципе неспособен ни разу сказать правду, и это существенный фактор. Здесь такого подчёркивания не было, и поэтому воспринимается как случайный выбор вместо гарантированного несоответствия.
Перед вами стоит три банки с рисом, гречкой и их смесью. Названия на каждой банке перепутаны.
Неудачная формулировка. "Перепутаны" обычно подразумевает случайное перемешивание и не гарантирует, что каждая наклейка обязательно окажется на на чужой банке.
Значит, изображение считывается с матрицы не строка за строкой (что приводит к искажениям, если фотографируется движущийся объект), а весь кадр фиксируется и считывается целиком.
Ну так можно было хотя бы это явным текстом сказать: игра вываливает на игрока вот такие тексты и такие-то изображения, надо угадать, что вся эта белиберда означает, и понять, что с ней требуется сотворить. И рассказать, какие вообще действия с объектами предусмотрены в игре.
Неужто вы ожидали, что абсолютно все потенциальные читатели обязательно знают эту игру и как там в принципе устроены задания? Как выглядит интерфейс, что именно пользователь видит на экране, в каком виде представлена вся эта информация, какие есть органы управления и что вообще можно делать с артефактами, которые игра вручила игроку? Вот, скажем, эти картинки: это прямо-таки картинки на посмотреть? Или это виртуальные объекты, которые можно повертеть туда-сюда, попереставлять местами? Или в игре вообще нет таких картинок, а есть визуальный трёхмерный кубик, упоминающийся в тексте, просто вы решили чисто для нашего удобства показать его в виде не кубика, а последовательности слоёв-срезов? А вот эти линии-фигурки на них — статические зафиксированные элементы, или можно с ними что-то делать? И так далее, вопросов уйма! Ведь всё, что у нас есть, — это ваш текст. Мы не можем покрутить это всё в руках и посмотреть, как игра реагирует на наши действия.
Для большого числа людей Тг в первую очередь — это не новостная лента, а мессенджер. Для общения с друзьями и родственниками.
Ну, я поэтому и сказал, что необязательно делать это через дикий матан с зубодробительными абстракциями. В целом-то у вас объяснения получились неплохо, баланс между строгостью и наглядностью выдержан удачно. Главное теперь — реструктурировать это немножко и вынести скрытые элементы сакрального знания наружу, чтобы текст мог воспринимать ученик, впервые в жизни видящий все эти термины и закорючки. Думаю, это вполне достижимо без переусложнения.
Тогда хочу отметить ещё одну особенность текста, которая ощутимо мешает разбираться в новой теме. Прошу прощения за многословность, просто это всё скорее на уровне ощущений, и очень трудно сформулировать конкретные замечания. Я бы сказал, что тексту не хватает какой-то целостности, связности, последовательности изложения. Обычно учебники построены так, чтобы каждый факт, каждый термин по ходу изложения полностью опирался на уже изученный материал и только на него. Здесь же (как в предыдущей статье, так и в этой) встречаются формулировки, которые изначально остаются непонятными, а проясняются только потом, после прочтения дополнительных абзацев.
Постараюсь пояснить на конкретных примерах.
1.
Вы пишете "например", но в качестве примера даётся очень специфический объект. Не какие-то произвольные два вектора, а именно базисные. И становится непонятно, это всё-таки пример и можно взять любую другую пару векторов (но тогда слова "новый объект" уже будут неверными, ибо пара коллинеарных векторов даст скаляр), или же тут обязательно должны быть базисные векторы. Требуется дочитать всю главу про произведение и его свойства, чтобы понять, как бивекторы связаны с геом.произведением и в каких случаях какие дают результаты. Но если мы сами разобрались, то сам этот пример выше оказывается ненужным, он нам никак не помог.
2.
Вы определяете геометрическое произведение как сумму скаляра и бивектора. А бивектор — как разницу геометрических произведений. Получается рекурсивное определение, где два термина просто ссылаются друг на друга, но ни тот, ни другой не объяснён. Опять же, только после полного прочтения почти всей статьи можно сделать осторожные выводы, что бивекторы можно формально определить просто как ориентированные пары, ввести попарные бивекторные произведения базисных векторов
в качестве базиса для бивекторов и исходя из этого сообразить, как оно работает уже для произвольной пары векторов. И попутно догадаться, почему же в формуле применяется геометрическое произведение для базисных векторов, а не бивекторное.
3.
Весь абзац здесь сформулирован так, словно мы уже полностью разобрались, что такое геометрическое произведение и знаем все его свойства, а тут просто повторяются уже известные истины на конкретном иллюстрирующем примере. Последнее из процитированных предложений, насколько я понимаю, должно было служить определением тривектора. Вместо этого оно выглядит так, будто мы уже прекрасно знаем всё о би- и тривекторах, и просто рассматриваем этот пример как подтверждение и закрепление пройденного материала. "Вот взяли то, проделали это, и — видите? — получилось такое-то." Чисто формально вроде как подход имеет право на существование. Но слишком уж резко он контрастирует со всеми общепринятыми учебными практиками, и потому порождает сомнения и недоумения: а что, я действительно уже всё это должен был знать и понимать? Невольно лезешь обратно в начало документа в поисках пропущенного или недопонятого материала, но ничего не находишь… В общем, такой тонкий момент, что вроде в тексте всё правильно — но производит совсем не тот эффект, который нужно.
____________
Мне кажется, подачу материала необходимо кардинально переработать. Подойти гораздо более формально, задать базовые определения — необязательно через адский матан, просто как факт того, что вот такая штука существует, называется так-то и обладает такими-то главными свойствами. И дальше уже опираться на этот фундамент.
К примеру, для меня наиболее ключевыми объектами оказались би- и тривекторы. Поэтому я бы дал им определения в самом начале. Для начала хотя бы просто как условные ориентированные пары/тройки векторов. Показать, как с этими объектами работать, как произвольная пара векторов формирует бивектор, который можно представить как сумму трёх компонентов, каждый из которых строится из базисных векторов исходного трёхмерного пространства как попарные произведения
, именно так, через крышечку. Аналогично про тривекторы.
Потом уже на основе этого вводится пространство
, и в нём — геометрическое произведение как сумма уже известных нам объектов. Дальше становится видно, как произведение базисных векторов равно бивекторам и тривектору, пишем, что по этой причине, и ещё по той, что для нас геометрическое произведение важнее, проще писать всё через него.
Ну и так далее. То есть главное — не заставлять продираться сквозь текст с оставшимися в тылу непонятными вещами.
Да, я просто описывал базовую схему и уточнил, что аналогично должны будут добавиться и остальные компоненты.
Наконец-то я смог добраться до этой статьи. Спасибо за разъяснения; в принципе, примерно такая картина у меня самого и сложилась, и тоже по аналогии с комплексными числами.
Собственно, я именно это и имел в виду, когда упоминал тензорное домножение на парный элемент. То есть сложение скаляра с вектором выводит нас из двух отдельных пространств
и
в новое пространство
. Скаляр конвертируется в элемент этого нового пространства с нулевой векторной компонентой: было число 5, стал элемент [5, (0,0,0)]; а вектор, соответственно, в элемент с нулевой скалярной компонентой: (1,2,3) -> [0, (1,2,3)]. И дальше эти элементы нового пространства складываются по стандартным привычным правилам, покомпонентно. Ну и бивекторы-тривекторы аналогично.
Я бы в статье ещё предложил расписать явным образом, как так получается, что сначала мы через "стыковку" обозначаем геометрическое произведение, а потом через ту же "стыковку" для
уже получаются бивекторы, которые до этого обозначались через
. Да, можно додуматься самостоятельно, что скалярное произведение ортогональных векторов равно нулю, и поэтому
. Но всё же когда речь идёт о введении базовой терминологии, имеет смысл такие отклонения в обозначениях подчёркивать явным образом.
Главное непонимание (по крайней мере, у меня) было связано с тем, что нет почти ни одного явного определения. Даже банального: с какими пространствами мы вообще работаем и как устроены всякие операции. Сначала говорится про обычные векторы. Тут же вопрос: сколько измерений, над каким полем? Не сказано. ОК, видимо, произвольные абстрактные. Потом речь идёт про скалярные и векторные произведения, что тут же сужает область определения до трёх или семи измерений; видимо, всё-таки три, ибо 7 — экзотика. Дальше вводится геометрическое произведение, которое, цитирую, "естественным образом содержит в себе обе эти операции", и приводится формула
, где операция
никак не определяется (вернее, определяется, но рекурсивно, через само же геометрическое произведение). Вынужденно делаю предположение, что раз сказали "содержит обе операции", а первая часть суммы — скалярное произведение, то вторая — это векторное произведение. Странно, что не стандартным крестиком умножения, но предположим. И тут же вопрос: каким макаром мы умудряемся складывать скаляр с вектором? Нельзя просто спрятаться за ответом "это формальная сумма", должен быть конкретный оператор "плюс", действующий из
в какое-то другое пространство. Но в какое? Как устроена эта операция, какие у неё свойства? Непонятно. Предположил для себя, что скаляр и вектор тензорно домножаются на единичный вектор соответствующего партнёра и уже в результирующем 4-мерном пространстве оба суммируются. Но верна ли эта картинка — без понятия. Читаем дальше, и выясняется, что
— это всё-таки не векторное произведение, а какая-то хтонь неведомая, возвращающая бивектор. Здравствуй ещё один неизвестный термин, а главное, это по-прежнему не объясняет, каким образом этот бивектор складывается со скаляром. Ну, наверное, так же, как я выше предположил, разве что вместо
получается, скорее всего,
(опять сомнения). Далее вводится "псевдоскаляр"
. Что это вообще такое? Почему "скаляр" и почему "псевдо"? Что за
? Выглядит как введённое выше "геометрическое произведение", но применённое к трём векторам. Но как? Ведь первое произведение вернёт "сумму скаляра с бивектором", и уже эту дурь надо будет умножать на третий вектор. А такой операции у нас не предусмотрено. Дальше этот псевдоскаляр
, кем бы он ни был, то ли умножается на
, то ли работает как функция с аргументом. Опять никаких определений, гадайте сами…
И так далее, и тому подобное. Буквально на каждом шагу такие вот спотыкалки. Какие-то вещи более-менее угадываются или предполагаются, какие-то проясняются задним числом после прочтения большей части статьи, а какие-то так и остаются вечной загадкой. В итоге получается не чтение, а сплошное гадание.
Я понимаю, что одна статья не может покрыть всё. Потому и говорю: если все эти определения есть где-то в другом месте, то надо дать в начале текста ссылку, по которой можно ознакомиться с базовыми терминами, необходимыми для понимания текста.
А почему нет? Вполне уместно было бы предупредить читателя, что для понимания материала необходимо ознакомиться с такими-то статьями. Теги — это, конечно, хорошо, но, во-первых, они в самом конце; во-вторых, они предполагаются для обозначения тематики, а не для указания областей знаний, которыми должен владеть читатель.
Формат Хабра не предполагает неявных взаимосвязей между постами, и если такая связь имеется, то считается хорошим тоном об этом явно сообщать. Глупо предполагать, что читатель предварительно полезет в профиль автора и начнёт перечитывать все публикации от начала времён. А если это был не один автор, а коллектив?
В пару к Worcester(shire) есть ещё очень похожее Leicester(shire) [ˈlɛstərʃər].
Крайне странные аргументы.
Пример с поиском функций: я гораздо быстрее нашёл их в подсвеченном коде, потому что во втором подсвечены практически только комментарии — ну глаз в первую очередь за них и зацепился, а остальной текст весь сплошняком серый, надо вчитываться, что там где.
Пример с retunr: а с какой радости несуществующий идентификатор оказался подсвеченным красным цветом? Мне не попадалось редакторов, где расцвечивался бы дефолтный текст, не подпадающий ни под одно правило. Если сами задали такую оцветовку — сами себе Буратины.
Рекомендация не подсвечивать ключевые слова вообще непонятна: эти цвета позволяют моментально идентифицировать основные синтаксические конструкции языка. Не говоря уж о визуальном предупреждении, если попытаешься создать переменную или функцию с именем, совпадающим с каким-то редко используемым и потому забытым (или недавно появившимся) ключевым словом.
OK, понял. Спасибо за ответ!
Я имею в виду не исторические коммиты, которые, как я уяснил из статьи, создаёт jj. А выборочные правки, которые я сам в любой конкретный момент могу понадёргать и закоммитить, безотносительно того, в каком порядке эти правки вносились.
К примеру, у меня отладочная сессия, я пихаю в код кучу вспомогательных инструкций, нахожу ошибки, исправляю их, добавляю новых отладочных инструкций, нахожу и исправляю ещё что-то… В какой-то момент решаю закоммитить все исправления, а отладочный код не коммитить, но и не удалять, а просто оставить его как текущие незакоммиченные изменения. В гите я делаю
add -upи точечно говорю: вот это принять, а вот это отклонить. То, что принял, войдёт в итоге в новый коммит, а остальное останется как временное локальное состояние.Возможна ли аналогичная процедура в jj?
Если всё состояние каталога является коммитом, то как закоммитить только часть изменений? (То, что в гите делается через
git add -p)Суть как раз в этом "почти". Делают гигантский резервуар, и из немыслимого множества нейтрино, пролетающих насквозь через весь объём, одно-два возьмут да и прореагируют, а детекторы это отловят.
Неправильно, у вас в сумме тогда получится 0.11, а ложка у нас объёмом 0.10. И результирующие объёмы жидкости в стаканах у вас получаются разными (1.01 в одном, 0.99 в другом).
Поэтому на самом деле обратно у нас переливается 0.10 в пропорции 10:1, то есть [1/110 A, 10/110 B]. И в стаканах окажется: [9/10+1/110 A, 10/110 B] = [100/110 A, 10/110 B]; и [1/10-1/110 A, 1-10/110 B] = [10/110 A, 100/110 B]. Видим, что соотношение получилось одинаковое.
Но из этой целой добавленной ложки мы часть вина уносим обратно в составе смеси.
Ну вот лично я воспринял это как синоним "на всех". Дескать, с каждой банки сняли наклейку, все три перемешали, и налепили как попало обратно, никак не контролируя, что получилось. И дальше я безуспешно ломал голову, пока не сдался и не прочёл ответ, и оказалось, что условие было понято неправильно. Было обидно, что из-за такой мелочи лишился удовольствия решить задачу.
Скажем, в задачах про лжецов всегда явно подчёркивают, что этот человек не просто лжец в "обиходном" смысле, а что он в принципе неспособен ни разу сказать правду, и это существенный фактор. Здесь такого подчёркивания не было, и поэтому воспринимается как случайный выбор вместо гарантированного несоответствия.
Неудачная формулировка. "Перепутаны" обычно подразумевает случайное перемешивание и не гарантирует, что каждая наклейка обязательно окажется на на чужой банке.
Блин, нельзя же так пугать! Я уж думал, отказываются от POP3 для вытаскивания почты с самого gmail-аккаунта.
Значит, изображение считывается с матрицы не строка за строкой (что приводит к искажениям, если фотографируется движущийся объект), а весь кадр фиксируется и считывается целиком.
Ну так можно было хотя бы это явным текстом сказать: игра вываливает на игрока вот такие тексты и такие-то изображения, надо угадать, что вся эта белиберда означает, и понять, что с ней требуется сотворить. И рассказать, какие вообще действия с объектами предусмотрены в игре.
Неужто вы ожидали, что абсолютно все потенциальные читатели обязательно знают эту игру и как там в принципе устроены задания? Как выглядит интерфейс, что именно пользователь видит на экране, в каком виде представлена вся эта информация, какие есть органы управления и что вообще можно делать с артефактами, которые игра вручила игроку? Вот, скажем, эти картинки: это прямо-таки картинки на посмотреть? Или это виртуальные объекты, которые можно повертеть туда-сюда, попереставлять местами? Или в игре вообще нет таких картинок, а есть визуальный трёхмерный кубик, упоминающийся в тексте, просто вы решили чисто для нашего удобства показать его в виде не кубика, а последовательности слоёв-срезов? А вот эти линии-фигурки на них — статические зафиксированные элементы, или можно с ними что-то делать? И так далее, вопросов уйма! Ведь всё, что у нас есть, — это ваш текст. Мы не можем покрутить это всё в руках и посмотреть, как игра реагирует на наши действия.