слияние мерзавца: сохраните одну сторону для некоторых файлов, руководство объединяют остальных

Это даже хуже, чем предлагает Ювал.

Математически, для заданного вектора x вы ищете новый вектор x / || x ||

где ||. || это норма, о которой вы, вероятно, думаете, как евклидова норма с

||. || = sqrt (dot (v, v)) = sqrt (sum_i x_i ** 2)

Это числа с плавающей запятой, поэтому недостаточно просто защититься от деления на ноль, у вас также есть проблема с плавающей запятой если x_i все маленькие (они могут снизиться, и вы потеряете величину).

По сути, все сводится к тому, что если вам действительно нужно уметь правильно обрабатывать небольшие векторы, вам придется проделать еще некоторую работу.

Если малые и нулевые векторы не имеют смысла в вашем приложении, вы можете проверить величину вектора и сделать что-то подходящее.

(обратите внимание, что как только вы начинаете работать с числами с плавающей запятой, а не с действительными числами, делать такие вещи, как возведение в квадрат, а затем квадратные числа с корнем (или их суммы) становится проблематичным как для больших, так и для малых концов представимого диапазона )

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

Например, вне моей головы потенциальные проблемы с этой (нормализацией) операцией, выполненной наивным способом

  • все компоненты (x_i) слишком малы
  • любой слишком большой компонент (выше квадратного корня из макс. представимого) вернет бесконечность. Это сокращает имеющиеся величины по компонентам на квадрат
  • , если отношение большого компонента к маленькому компоненту слишком велико, вы можете эффективно потерять направление малых компонентов, если не будете осторожны
  • и т.п.
24
задан Ivan 20 October 2009 в 22:25
поделиться

1 ответ

Если вы уже пытались выполнить слияние и просматриваете неслитые файлы, вы можете использовать git checkout:

git checkout some_branch
git merge origin/master
<conflicts!>
git checkout --theirs -- <dir>|<file>

(и, конечно, - наш сохраняет версия из текущей ветки)

49
ответ дан 28 November 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: