Одиночные элементы в основном позволяют Вам иметь сложное глобальное состояние на языках, которые иначе мешают или невозможный иметь сложные глобальные переменные.
Java в особенности использует одиночные элементы в качестве замены для глобальных переменных, так как все должно содержаться в классе. Самыми близкими это приходит к глобальным переменным, являются общедоступные статические переменные, которые могут использоваться, как будто они были глобальны с import static
, C++ действительно имеет глобальные переменные, но порядок, в котором вызываются конструкторы глобальных переменных класса, не определен. По сути, одиночный элемент позволяет Вам задержать создание глобальной переменной до первого раза, когда переменная необходима.
Языки, такие как Python и Ruby используют одиночные элементы очень мало, потому что можно использовать глобальные переменные в модуле вместо этого.
Поэтому, когда хорошо/плохо использовать одиночный элемент? В значительной степени точно, когда было бы хорошо/плохо использовать глобальную переменную.
Корреляция Пирсона и косинусное подобие инвариантны к масштабированию, то есть умножению всех элементов на ненулевую константу. Корреляция Пирсона также инвариантна к добавлению любой константы ко всем элементам. Например, если у вас есть два вектора X1 и X2, и ваша корреляционная функция Пирсона называется pearson ()
, pearson (X1, X2) == pearson (X1, 2 * X2 + 3)
. Это довольно важное свойство, потому что вы часто не