📅  最后修改于: 2023-12-03 15:10:04.899000             🧑  作者: Mango
本程序用于找出两个数之间的三个有理数,其输入参数包括两个数上限和下限,输出结果为三个有理数。
参数为两个数上限和下限,如找出36和34之间的三个有理数,参数为:
lower_bound = 34
upper_bound = 36
输出三个有理数,其对应的分母是一样的。
输出为:
[17/2, 35/4, 18/2]
其中,17/2为中间的有理数,35/4和18/2为两边的有理数。
from fractions import Fraction
def find_three_rational_nums(lower_bound, upper_bound):
# 获取最小公约数
lcm = Fraction(lower_bound).denominator * Fraction(upper_bound).denominator
# 计算每个有理数的分子
mid = (lower_bound + upper_bound) / 2
mid_num = Fraction(mid * lcm).numerator
left = ((2 * lower_bound) + upper_bound) / 3
left_num = Fraction(left * lcm).numerator
right = (lower_bound + (2 * upper_bound)) / 3
right_num = Fraction(right * lcm).numerator
# 返回三个有理数
return [Fraction(mid_num, lcm), Fraction(left_num, lcm), Fraction(right_num, lcm)]
# 执行
lower_bound = 34
upper_bound = 36
result = find_three_rational_nums(lower_bound, upper_bound)
print(result)
本程序用于求两个数之间的三个有理数,其实现方式包括计算最小公倍数、计算每个有理数的分子和输出三个有理数。