下面是一个可能的实现有理数抽象数据类型的示例:
```python
class Rational:
def __init__(self, numerator, denominator):
self.numerator = numerator
self.denominator = denominator
def add(self, other):
new_numerator = (self.numerator * other.denominator) + (other.numerator * self.denominator)
new_denominator = self.denominator * other.denominator
return Rational(new_numerator, new_denominator)
def subtract(self, other):
new_numerator = (self.numerator * other.denominator) - (other.numerator * self.denominator)
new_denominator = self.denominator * other.denominator
return Rational(new_numerator, new_denominator)
def multiply(self, other):
new_numerator = self.numerator * other.numerator
new_denominator = self.denominator * other.denominator
return Rational(new_numerator, new_denominator)
def divide(self, other):
new_numerator = self.numerator * other.denominator
new_denominator = self.denominator * other.numerator
return Rational(new_numerator, new_denominator)
def get_numerator(self):
return self.numerator
def get_denominator(self):
return self.denominator
def __str__(self):
return f"{self.numerator}/{self.denominator}"
```
然后,可以使用上述抽象数据类型进行有理数运算:
```python
r1 = Rational(1, 2)
r2 = Rational(2, 3)
# 加法
r3 = r1.add(r2)
print(r3) # 输出: 7/6
# 减法
r4 = r1.subtract(r2)
print(r4) # 输出: -1/6
# 乘法
r5 = r1.multiply(r2)
print(r5) # 输出: 1/3
# 除法
r6 = r1.divide(r2)
print(r6) # 输出: 3/4
# 获取分子和分母
numerator = r1.get_numerator()
denominator = r1.get_denominator()
print(f"Numerator: {numerator}, Denominator: {denominator}") # 输出: Numerator: 1, Denominator: 2
```
上述实现中,使用了分数的分子和分母两个属性来表示有理数,并提供了对应的基本运算方法。同时,还提供了获取分子和分母的方法用于获取有理数的相关信息。
1563

被折叠的 条评论
为什么被折叠?



