Pythonのエクササイズ

問題の説明:

ウサギのウサギ、3ヶ月の誕生のペアは、ウサギので、すべて、3ヶ月ごとに生のウサギに生まれています。

pythonを使用してシミュレート:

1  !は/ usr / binに/のpython3 
2  インポートランダム
 3  インポート4  
5  
6  クラスAPairOfRabbits():
 7      デフ __init__ (自己):
 8          self.age = 1
 9          self.malename = '' .join(random.sample( string.ascii_letters、5 ))
 10          self.femalename = '' .join(random.sample(string.ascii_letters、4 ))
 11          self.childs = []
 12          self.parent = なし
 13      DEFgetParentInfo(自己):
 14          であれば(なし== self.parent):
 15              戻りなし
 16          17              プリント" ParentsName:%sの"%のself.parent.getName())
 18      デフgetChildsInfo(自己):
 19          のための子供:self.childs
 20              プリント" ChildsName:%S "child.getName())
 21          プリント"" 22      デフ情報(自己):
 23          プリント' %sおよび%S:年齢%D '(self.malename、self.femalename、self.age))
 24          self.getParentInfo()
 25          self.getChildsInfo()
 26  
27      DEF 自己(伝播):
 28          self.childs .append(APairOfRabbits())
 29          self.childs [-1 ] .setParent(自己)
 30      デフのgetName(自己):
 31          戻り self.malename + " - " + self.femalename
 32      DEF growUpOfMonth(自己):
 33          自己。年齢+ = 1
 34          の場合(0 ==(self.age%3 )):
 35              self.propagate()
 36  
37      デフのsetParent(自己、親):
 38          = self.parent 39      DEF のgetParent(自己):
 40          リターンself.parent
 41      DEF getChilds (自己):
 42          リターンself.childs
 43  
44  クラスRabbitsFamily():
 45      デフ __init__ (自己):
 46          self.rootRabbits =のAPairOfRabbits()
 47      DEF dfsUpdateState(自己、親= なし):
 48         もしなし== 親:
 49              親= self.rootRabbits
 50          のためのparent.getChilds():
 51              self.dfsUpdateState(子)
 52          parent.growUpOfMonth()
 53      DEF dfsShowState(自己、親= なし):
 54          もし =なし= 親:
 55              親= self.rootRabbits
 56          parent.info()
 57          のためのparent.getChilds():
 58              self.dfsShowState(子)
 59      
60rabbitsFamily = RabbitsFamily()
 61  のための I における範囲(55 ):
 62      rabbitsFamily.dfsUpdateState()
 63 rabbitsFamily.dfsShowState()

 

おすすめ

転載: www.cnblogs.com/jianc/p/11722940.html