Почему это:
((256-438)^2)+((227-298)^2)
Дай мне -253, когда должно быть 38165 вместо?
-253
38165
^ - битовый исключающий оператор ИЛИ (XOR)
^
** - оператор экспоненты, используйте:
**
((256-438)**2)+((227-298)**2)
Потому что ^ является оператором для XOR, а не экспонент. Попробуйте ** вместо.
^ - оператор XOR, а не экспонента.
^ - это побитовый оператор XOR, в соответствии с http://phrogz.net/programmingruby/language.html. Не оператор "power of".
Try ((256-438)**2)+((227-298)**2)
Использование ** не ^
Код должен быть - ((256-438)**2)+((227-298)**2)
** - оператор Возведения в степень или «сила».
Оператор возведения в степень Повышает number до степени second number, которая может быть отрицательной или дробный. 2 ** 3 #=> 8 2 ** -1 #=> (1/2) 2 ** 0.5 #=> 1.4142135623731
Оператор возведения в степень
Повышает number до степени second number, которая может быть отрицательной или дробный.
number
second number
2 ** 3 #=> 8
2 ** -1 #=> (1/2)
2 ** 0.5 #=> 1.4142135623731
^ - побитовый оператор XOR.
Оператор XOR Оператор XOR реализует исключающее ИЛИ, что означает, что он будет установите бит в 1 на выходе, если только один из соответствующих битов на входах установлены 1: (a = 18).to_s(2) #=> "10010" (b = 20).to_s(2) #=> "10100" (a ^ b).to_s(2) #=> "110" (начальные нули опущены)
Оператор XOR
Оператор XOR реализует исключающее ИЛИ, что означает, что он будет установите бит в 1 на выходе, если только один из соответствующих битов на входах установлены 1:
(a = 18).to_s(2) #=> "10010"
(b = 20).to_s(2) #=> "10100"
(a ^ b).to_s(2) #=> "110" (начальные нули опущены)
(a ^ b).to_s(2) #=> "110"