由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 这个给分数求和的Python程序为嘛陷入死循环出不来?大牛给帮忙看看。
相关主题
java ---> Kotlin --- > Native阅读scala中
python 3 双/ 的意思。。。ugly in the hell....谁知道这个嵌套的Python if 是啥意思?
再请教一个class输出的问题python 有什么好书可以读一读?
感觉用python的人,属于程序员中的文艺青年那类的一道系统设计题求思路。
看C码工写Python真是捉急一个数据结构中的数学求和问题求教 (转载)
python要把@当作矩阵乘法算符n*(n-1)*(n+1)/3 re:一个数据结构中的数学求和问题求教 (转载)
Java is back一个小问题
学python的一点小感觉哈怎样用减法和移位代替除法
相关话题的讨论汇总
话题: sum话题: fraction话题: 求和话题: 45话题: 分母
进入Programming版参与讨论
1 (共1页)
m******u
发帖数: 12400
1
def sum_of_fraction(N, D):

sum = []

sum.append (N[0])
sum.append (D[0])
for i in range(1, len(N)):
sum[0] = sum[0] * D[i] + sum[1] * N[i]
sum[1] = sum[1] * D[i]
m = min(sum)
for j in range(2,m):
if sum[0] % j ==0 and sum[1] % j == 0:
sum[0] = sum[0] / j
sum[1] = sum[1] / j
return sum
N = [2, 3, 56, 43, 23, 5, 6, 94, 27, 54]
D = [43, 23, 45, 45, 56 ,38, 102, 45, 21, 76]
print(sum_of_fraction(N,D))
N = [1, 1, 1, 1]
D = [4, 4, 4, 4]
print(sum_of_fraction)
数组N和D分别用来存放分数的分子和分母。数组sum用来存放求和结果,它有两个元素
,一个是和的分子(sum0),另一个是何的分母(sum)。每次求和之后立马约分化简
X****r
发帖数: 3557
2
你约分那个循环不对,不能约成最简,加几次后m就大得不行,算不动了。应该直接拿
辗转相除法求最大公约数约分。

【在 m******u 的大作中提到】
: def sum_of_fraction(N, D):
:
: sum = []
:
: sum.append (N[0])
: sum.append (D[0])
: for i in range(1, len(N)):
: sum[0] = sum[0] * D[i] + sum[1] * N[i]
: sum[1] = sum[1] * D[i]
: m = min(sum)

m******u
发帖数: 12400
3
实际上这个循环似乎没有运行,是咋回事?
如果我用简单数字为例,不会太复杂,不应该出现死机现象。最后算出来,怎么是不约
分化简的分数。
m******u
发帖数: 12400
4
而且结果还是错的。
尼玛,1/5+2/6+3/7+4/8 = 614/420!?
X****r
发帖数: 3557
5
就是没有约分嘛,不是跟你说了你约分那个循环不对吗,比如要是可以被四约你就只会
除以二,你应该用辗转相除法求最大公约数既对又快。

【在 m******u 的大作中提到】
: 而且结果还是错的。
: 尼玛,1/5+2/6+3/7+4/8 = 614/420!?

1 (共1页)
进入Programming版参与讨论
相关主题
怎样用减法和移位代替除法看C码工写Python真是捉急
这种数值的问题怎么办呢python要把@当作矩阵乘法算符
两道某公司面试题Java is back
请问在C/C++那个function可以查星期几?学python的一点小感觉哈
java ---> Kotlin --- > Native阅读scala中
python 3 双/ 的意思。。。ugly in the hell....谁知道这个嵌套的Python if 是啥意思?
再请教一个class输出的问题python 有什么好书可以读一读?
感觉用python的人,属于程序员中的文艺青年那类的一道系统设计题求思路。
相关话题的讨论汇总
话题: sum话题: fraction话题: 求和话题: 45话题: 分母