Kus*_*vil 0 python integer diophantine
有类似的问题:检查变量是否是整数,但我看不到我的问题的答案.
我的意思是,最近我和很多人打架,所以我的朋友建议我安装Python.我今天打开它,这样我就可以计算大数字并且具有良好的精度,但是...如何使用这种精度?我的意思是,如果我做了类似的pow(31,123)工作,但如果我想检查数字是否为整数,我得到:
>>> (4.00000000000001).is_integer()
False
>>> (4.000000000000001).is_integer()
False
>>> (4.0000000000000001).is_integer()
True
>>> (4.00000000000000001).is_integer()
True
Run Code Online (Sandbox Code Playgroud)
我想写一个简单的循环来找到一些丢番图方程的解,我需要从非常大的数字取平方根并检查它是否是整数,但现在我处于紧张状态.有人可以帮助我或者给我一个如何获得更好精度的建议吗?
例:
例如:$ 2x ^ 2 = 1 + y ^ 31 $,其中x,y是整数.我的想法是循环,我增加y(从1开始),加1,除以2,取平方根,然后它必须是整数以满足等式.这就是我需要它的原因.
4.0000000000000001 无法准确表示为float:
>>> format(4.0000000000000001, '.53f')
'4.00000000000000000000000000000000000000000000000000000'
Run Code Online (Sandbox Code Playgroud)
所以这个数字确实是一个整数.在大多数系统上,你不能希望超过15位小数:
>>> sys.float_info.dig
15
Run Code Online (Sandbox Code Playgroud)
看sys.float_info结构,dig属性代表:
可以在浮点数中忠实表示的最大小数位数
如果您需要更高的精度,请使用decimal模块.
| 归档时间: |
|
| 查看次数: |
1120 次 |
| 最近记录: |