Как с помощью R проверить, является ли квадратный корень числа целым числом?
Следующие ниже все оценивают как FALSE
.
is.integer( sqrt(25) )
is.integer( sqrt(25L) )
Как с помощью R проверить, является ли квадратный корень числа целым числом?
Следующие ниже все оценивают как FALSE
.
is.integer( sqrt(25) )
is.integer( sqrt(25L) )
Хорошо, я нашел способ обойтись, но не уверен, что он эффективен или даже надежен для использования более экзотических чисел.
25 %% sqrt(25) == 0
Оценивает до TRUE
.
Возможно, лучший способ сделать это:
sqrt(25) %% 1 == 0
Что также оценивается как TRUE
. По материалам этого ответа.
?is.integer
, особенно функцию is.wholenumber
, определенную в разделе "Примеры".
- person ; 10.06.2015
is.wholenumber
, но не подумал, что это было очень ясно или именно то, что я искал.
- person Bastiaan Quast; 10.06.2015
%% and x %/% y can be used for non-integer y, e.g. 1 %/% 0.2,
. Однако я обновил свой ответ альтернативой, в которой используется 1.
- person Bastiaan Quast; 10.06.2015
3 %% sqrt(3)
не равно 0, и если квадратный корень не является целым числом, он не может дать модулю 0 для своего квадрата, так как его нужно умножить на другое нецелое число (т.е. будет иметь остаток). Я что, глупый?
- person ping; 10.06.2015
sqrt(8+1/3+1/3+1/3) %% 1 == 0
или (8+1/3+1/3+1/3)%%sqrt(8+1/3+1/3+1/3)
- person Cath; 10.06.2015