Asked:2022-09-03 01:43:09 +0000 UTC2022-09-03 01:43:09 +0000 UTC2022-09-03 01:43:09 +0000 UTC
分数排序问题。代码中有一些错误,但我不明白它是什么。请告诉我
772
count = int(input())
ls = []
for _ in range(count):
line = input()
ls.append(list(map(int, line.split('/'))))
ls.sort(key=lambda x: x[0]/x[1])
for i1, i2 in ls:
print('%d/%d' % (i1, i2))
要添加第二个条件,重做 lambda 就足够了
lambda x: (x[0] / x[1], x[0])。Python 从左到右比较元组。如果第一个元素不同,它们将确定顺序,否则第二个元素将确定顺序。就这样......但是这还不够的可能性很小。
很明显
因为 n 2 > (n - 1)(n + 1) = n 2 - 1。
但这里有一个例子:
对除法不等式进行错误评估。Python 中的操作
/返回有限精度的实数。这里缺乏精确性。乘法不等式总是正确计算 - Python 精确地乘以整数。要通过乘法比较分数,您需要手动编写一个比较程序:您也可以尝试分数模块,如下所示: