Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以超量近似小数点_Python - Fatal编程技术网

Python 以超量近似小数点

Python 以超量近似小数点,python,Python,我想创建一个向量,其分量是从0.到给定数n的q有理数。我可以用下面的算法来实现 import numpy as np n = 60. q=200 dn = 1.*n/q X=np.arange(0.,n,dn) print len(X) 它应该返回200。 此方法在某些情况下有效,如上面的示例中所示。然而,dn可能是一个有理数或周期数。在这种情况下,它不是由过量近似的,因此X的长度最终是q+1,而不是q。 例如,在q=220的情况下,算法返回221,而不是220。 避免此问题的最佳方法是什么

我想创建一个向量,其分量是从
0.
到给定数
n
q
有理数。我可以用下面的算法来实现

import numpy as np
n = 60.
q=200
dn = 1.*n/q

X=np.arange(0.,n,dn)
print len(X)
它应该返回
200
。 此方法在某些情况下有效,如上面的示例中所示。然而,
dn
可能是一个有理数或周期数。在这种情况下,它不是由过量近似的,因此
X
的长度最终是
q+1
,而不是
q
。 例如,在
q=220
的情况下,算法返回
221
,而不是
220
。 避免此问题的最佳方法是什么

我想你想要

这类似于:

gen = (i * n / (q-1.0) for i in range(q))
X = np.fromiter(gen, float)

我通过编写
dn=1.*n/q+10**(-3)
解决了这个问题,但我想要一个更优雅的解决方案。
gen = (i * n / (q-1.0) for i in range(q))
X = np.fromiter(gen, float)