#ruby #math
#ruby #математика
Вопрос:
Почему это:
((256-438)^2) ((227-298)^2)
Сообщаете мне, -253
когда это должно быть 38165
вместо этого?
Комментарии:
1. Где вы это вычисляете??
Ответ №1:
^
является ли побитовый исключающий оператор OR (XOR)
**
является ли оператор экспоненты, использующим:
((256-438)**2) ((227-298)**2)
Ответ №2:
Потому что ^
это оператор для XOR, а не экспоненты. Попробуйте **
вместо этого.
Ответ №3:
Try ((256-438)**2) ((227-298)**2)
Ответ №4:
^
является ли побитовым оператором XOR, согласно http://phrogz.net/programmingruby/language.html . Не оператор «power of».
Ответ №5:
^
это оператор XOR, а не возведение в степень.
Ответ №6:
Использовать **
не ^
Код должен быть — ((256-438)**2) ((227-298)**2)
**
является возведением в степень или оператором ‘power of’.
Оператор возведения в степень
Возводит
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"
(начальные нули опущены)