python数据结构题目_《数据结构与算法Python语言描述》习题第二章第三题(python版)...
ADT Rational: #定義有理數(shù)的抽象數(shù)據(jù)類型
Rational(self, int num, int den) #構(gòu)造有理數(shù)num/den
+(self, Rational r2) #求出本對象加r2的結(jié)果
-(self, Rational r2) #求出本對象減r2的結(jié)果
*(self, Rational r2) #求出本對象乘以r2的結(jié)果
/(self, Rational r2) #求出本對象除以r2的結(jié)果
num(self) #取出本對象的分子
den(self) #取出本對象的分母
int(self) #取整
float(self) #取浮點(diǎn)數(shù)
==(self,Rational r2)
!=(self,Rational r2)
>(self,Rational r2)
<(self,Rational r2)
>=(self,Rational r2)
>=(self,Rational r2)
#!/usr/bib/env python
# -*- coding:utf-8 -*-
"""
ADT Rational: #定義有理數(shù)的抽象數(shù)據(jù)類型
Rational(self, int num, int den) #構(gòu)造有理數(shù)num/den
+(self, Rational r2) #求出本對象加r2的結(jié)果
-(self, Rational r2) #求出本對象減r2的結(jié)果
*(self, Rational r2) #求出本對象乘以r2的結(jié)果
/(self, Rational r2) #求出本對象除以r2的結(jié)果
num(self) #取出本對象的分子
den(self) #取出本對象的分母
int(self) #取整
float(self) #取浮點(diǎn)數(shù)
==(self,Rational r2)
!=(self,Rational r2)
>(self,Rational r2)
<(self,Rational r2)
>=(self,Rational r2)
>=(self,Rational r2)
"""
class Rational(object):
__slots__ = ('_num', '_den')
@staticmethod
def _gcd(m,n):
while 1:
temp = n % m
if temp == 0:
return m
else:
n = m
m = temp
def __init__(self, num, den=1):
if not isinstance(num, int) or not isinstance(num, int):
raise TypeError
if den == 0:
raise ZeroDivisionError
sign = 1
if num < 0:
num, sign = -num, -sign
if den < 0:
den, sign = -den, -sign
g = Rational._gcd(num, den)
self._num = sign*(num//g)
self._den = den//g
#float
x = self._num / self._den
self._num = x.as_integer_ratio()[0]
self._den = x.as_integer_ratio()[1]
def __add__(self, other):
den = self._den * other._den
num = self._den * other._num + self._num * other._den
return Rational(num, den)
def __sub__(self, other):
den = self._den * other._den
num = self._num * other._den - self._den * other._num
return Rational(num, den)
def __mul__(self, other):
den = self._den * other._den
num = self._num * other._num
return Rational(num, den)
def __floordiv__(self, other):
den = self._den * other._num
num = self._num * other._den
return Rational(num, den)
def __int__(self):
return self._num // self._den
def __float__(self):
return self._num / self._den
def __eq__(self, other):
return self._num * other._den == self._den * other._num
def __ne__(self, other):
return self._num * other._den != self._den * other._num
def __lt__(self, other):
return self._num * other._den < self._den * other._num
def __le__(self, other):
return self._num * other._den <= self._den * other._num
def __gt__(self, other):
return self._num * other._den > self._den * other._num
def __ge__(self, other):
return self._num * other._den >= self._den * other._num
def __str__(self):
return str(self._num) + "/" + str(self._den)
def print(self):
print(self._num, "/", self._den)
def num(self):
return self._num
def den(self):
return self._den
if __name__ == '__main__':
a = Rational(10,5)
b = Rational(1,1000000)
print(a)
print(b)
print("==")
print(a+b)
print(a!=b)
print(int(a))
print(int(b))
【數(shù)據(jù)結(jié)構(gòu)與算法分析——C語言描述】第二章總結(jié) 算法分析
算法 算法(algorithm)是為求解一個(gè)問題需要遵循的.被清楚地指定的簡單指令的集合. 數(shù)學(xué)基礎(chǔ) 四個(gè)定義: 1.大O表示法: 如果存在正常數(shù) c 和 n0?使得當(dāng) N?≥?n0時(shí),T(N) ≤ ...
運(yùn)用Python語言編寫獲取Linux基本系統(tǒng)信息(三):Python與數(shù)據(jù)庫編程,把獲取的信息存入數(shù)據(jù)庫
運(yùn)用Python語言編寫獲取Linux基本系統(tǒng)信息(三):Python與數(shù)據(jù)庫編程 有關(guān)前兩篇的鏈接: 運(yùn)用Python語言編寫獲取Linux基本系統(tǒng)信息(一):獲得Linux版本.內(nèi)核.當(dāng)前時(shí)間 運(yùn) ...
檢索算法 -- 數(shù)據(jù)結(jié)構(gòu)與算法的javascript描述 第13章
檢索算法-如何在列表中查找特定的值. 順序查找 從列表的第一個(gè)元素開始對列表元素逐個(gè)進(jìn)行判斷,直到找到了想要的結(jié)果,它屬于暴力查找技巧的一種,在執(zhí)行查找時(shí)可能會(huì)訪問到數(shù)據(jù)結(jié)構(gòu)里的所有元素. 代碼: / ...
排序算法 -- 數(shù)據(jù)結(jié)構(gòu)與算法的javascript描述 第12章
排序是常見的功能,給定一組數(shù)據(jù),對其進(jìn)行排序. 在此之前,我們需要準(zhǔn)備個(gè)基礎(chǔ)工作--自動(dòng)生成數(shù)組,并可以對該組數(shù)據(jù)做任何處理. /** * 測試類 ,數(shù)組 * @param numElements * ...
【數(shù)據(jù)結(jié)構(gòu)與算法分析——C語言描述】第一章總結(jié) 引論
這一章主要復(fù)習(xí)了一些數(shù)學(xué)知識,像指數(shù).對數(shù).模運(yùn)算.級數(shù)公式:還有2種證明方法,歸納假設(shè)法和反證法.所幸以前學(xué)過,重新拾撿起來也比較輕松. 簡要地復(fù)習(xí)了遞歸,提出了編寫遞歸例程的四條基本法則: 基準(zhǔn)情 ...
python核心編程-習(xí)題-第二章
PS:PDF在線地址:http://bcmi.sjtu.edu.cn/~zhaohai/ptm2012/data/Python-kernel.programming.v2.pdf 2-1 ?變量,pr ...
字典 -- 數(shù)據(jù)結(jié)構(gòu)與算法的javascript描述 第七章
字典 字典是一種以鍵-值對形式存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) 最基本功能規(guī)劃 add 添加數(shù)據(jù)到字典 remove 從字典中移除數(shù)據(jù) get 從字典中取出數(shù)據(jù) count 統(tǒng)計(jì)字典數(shù)據(jù)量 find 查找數(shù)據(jù)在字典 ...
鏈表的實(shí)現(xiàn) -- 數(shù)據(jù)結(jié)構(gòu)與算法的javascript描述 第六章
鏈表 鏈表是由一組節(jié)點(diǎn)組成的集合.每個(gè)節(jié)點(diǎn)都使用一個(gè)對象的引用指向它的后繼.指向另一個(gè)節(jié)點(diǎn)的引用叫做鏈 結(jié)構(gòu)示意圖 : 鏈表頭需要我們標(biāo)識 head { element:head,next:obj1 ...
隊(duì)列的實(shí)現(xiàn) -- 數(shù)據(jù)結(jié)構(gòu)與算法的javascript描述 第五章
隊(duì)列也是列表的一種,有不同于列表的規(guī)則. 先進(jìn)先出 入隊(duì)方法 出隊(duì)方法 可以找到隊(duì)首 可以找到隊(duì)尾 可以查看隊(duì)列有多長 可以查看隊(duì)列是否為空 這是一個(gè)基本的需求,圍繞他來實(shí)現(xiàn),當(dāng)然我們可以自己擴(kuò)展列表 ...
隨機(jī)推薦
eval解析JSON中的注意點(diǎn)
在JS中將JSON的字符串解析成JSON數(shù)據(jù)格式,一般有兩種方式: 1.一種為使用eval()函數(shù). 2. 使用Function對象來進(jìn)行返回解析. 使用eval函數(shù)來解析,并且使用jquery ...
Selenium腳本編寫環(huán)境的搭建/XPath
編寫環(huán)境主要分為三個(gè)部分: JUnit : java單元測試框架: Firebug: firefox 附加組件,Firebug是firefox下的一個(gè)擴(kuò)展,能夠調(diào)試所有網(wǎng)站語言,如Html,Css等, ...
理解HTTP session原理及應(yīng)用
轉(zhuǎn)自:http://www.2cto.com/kf/201206/135471.html 一.術(shù)語session在我的經(jīng)驗(yàn)里,session這個(gè)詞被濫用的程度大概僅次于transaction,更加有趣 ...
css案例學(xué)習(xí)之div a實(shí)現(xiàn)立體菜單
效果 代碼
總結(jié)
以上是生活随笔為你收集整理的python数据结构题目_《数据结构与算法Python语言描述》习题第二章第三题(python版)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wav音量和分贝转换关系_电吉他音箱瓦数
- 下一篇: python源码只有编译成二进制_Pyt