Python不会用float覆盖int
我在Python方面遇到了一些麻烦。使用Python2.X,并且知道它在除法方面有一些困难,这就是为什么我添加了来自未来导入除法的Python不会用float覆盖int,python,floating-point,division,Python,Floating Point,Division,我在Python方面遇到了一些麻烦。使用Python2.X,并且知道它在除法方面有一些困难,这就是为什么我添加了来自未来导入除法的,到目前为止它运行良好。但我注意到,当我想在这个项目中用一个浮点覆盖一个int时,它不起作用,我在一个较小的项目中测试了它,但在那里效果很好 有人知道这里出了什么事吗 A = [ [3, 3, 3], [1, 1, 2], [1, 0, 3] ] b = [0, 0, 3] def gauss_elim(A,b): print A[0]
,到目前为止它运行良好。但我注意到,当我想在这个项目中用一个浮点覆盖一个int时,它不起作用,我在一个较小的项目中测试了它,但在那里效果很好
有人知道这里出了什么事吗
A = [
[3, 3, 3],
[1, 1, 2],
[1, 0, 3]
]
b = [0, 0, 3]
def gauss_elim(A,b):
print A[0], b[0]
print A[1], b[1]
print A[2], b[2]
n = len(A)
temp = []
temp_b = []
MAX = 0
te = [0,0,0]
for i in range(0,n-1):
k=i
for a in range(i,n-1):
### Pivotsearch Start ###
if math.fabs(A[a][i]) < math.fabs(A[a+1][i]):
MAX = (a+1)
temp = A[i]
A[i] = A[MAX]
A[MAX] = temp
temp_b = b[i]
b[i] =b[MAX]
b[MAX]=temp_b
### Pivotsearch End ###
for j in range(i+1, n):
if A[j][i] == 0:
continue
A[j][i] = A[j][i] - ( A[j][i] / A[i][i] ) * A[i][i]
b[j] = ( b[j] - (A[j][i])/(A[i][i]) ) #<<<< DOES NOT OVERWRITE
k = k + 1
print 'done:'
print A[0], b[0]
print A[1], b[1]
print A[2], b[2]
gauss_elim(A,b)
A=[
[3, 3, 3],
[1, 1, 2],
[1, 0, 3]
]
b=[0,0,3]
def gauss_elim(A,b):
打印A[0],b[0]
打印A[1],b[1]
打印A[2],b[2]
n=len(A)
温度=[]
温度b=[]
最大值=0
te=[0,0,0]
对于范围(0,n-1)内的i:
k=i
对于范围(i,n-1)内的a:
###数据透视搜索开始###
如果math.fabs(A[A][i])
b[j] = ( b[j] - (A[j][i])/(A[i][i]) )
在代码中的那一点,(A[j][i])
是0。试着把它打印出来,你会看到的
请看前面的行:
A[j][i] = A[j][i] - ( A[j][i] / A[i][i] ) * A[i][i]
您可以取消A[i][i]
以获得:
A[j][i] = A[j][i] - A[j][i]
A[j][i] = 0
您可能会感到困惑,因为无论是否使用了来自未来导入部门的,相同的结果都会以不同的方式出现。如果包含来自未来进口部门的,A[j][i]
将始终为0。如果它没有被包括在内,A[j][i]
将不会是0-但是(A[j][i])/(A[i][i])
,在下面的一行中,将是。float
比int
更宽(更大)int
?噢,伙计-。。。谢谢:)@shuftft当然可以。不要忘记,您可以单击答案旁边的绿色复选标记,将答案标记为已接受。