如何使用 R 中的 mpfr 包检查一个数字是不是是一个完美的正方形?

Posted

技术标签:

【中文标题】如何使用 R 中的 mpfr 包检查一个数字是不是是一个完美的正方形?【英文标题】:How to check if a number is a perfect square by using mpfr package in R?如何使用 R 中的 mpfr 包检查一个数字是否是一个完美的正方形? 【发布时间】:2015-07-02 20:35:13 【问题描述】:

我有一个行列式,我知道它是整数的平方,但是因为它的值大于.Machine$integer.max,所以我使用了 mpfr 包。

但我还是有问题。

算法如下:

> a<- mpfr(sqrt(det(M)), precBits=512);a
1 'mpfr' number of precision  512   bits 
[1] 430080000000001.1875

你能帮帮我吗?

【问题讨论】:

我没有经常使用 mpfr/matrices,但看起来 determinant() 函数与 Rmpfr 包一起打包。见inside-r.org/packages/cran/Rmpfr/docs/determinant.mpfrMatrix。 我已经完成了 bgoldst 但我仍然有问题。 【参考方案1】:

性能有问题吗?如果没有,那么以下应该可以工作。

> x<-mpfr(31415926535897932384626433832795, 500)
> is.whole(sqrt(x))
[1] FALSE


> y<-mpfr(31415926535897932384626433832794, 500)^2
> y
1 'mpfr' number of precision  500   bits
[1] 986960440108935918772069008410384076085841574993068761741787136
> is.whole(sqrt(y))
[1] TRUE

【讨论】:

以上是关于如何使用 R 中的 mpfr 包检查一个数字是不是是一个完美的正方形?的主要内容,如果未能解决你的问题,请参考以下文章

当一个单元格不是数字时,R 包 XLSX 将整列转换为字符串或布尔值

我应该如何使用 mpfr::mpfr_fac_ui 函数?

Twig - 如何检查变量是不是为数字/整数

如何检查一个整数是不是在 PHP 中的数字范围内?

如何检查数组中的数字是不是相等?

如何检查字符串中的数据是不是是 C++ 上的数字?