K3Python2018 OOP-047. def Fibo(n):
if n == 0:
return 0
if n == 1:
return 1
else:
return Fibo(n-1) + Fibo(n-2)
print(Fibo(100))
再帰の例
答えが出ないよ!!
8. def Fibo(n):
table = [-1] * n
table[0] = 0
table[1] = 1
for x in range(n - 2):
table[x + 2] = table[x] + table[x + 1]
return table[n - 2] + table[n - 1]
print(Fibo(100))
再帰を使わず行こう(動的計画法)
ほとんど0秒で答えが出る!
9. table = [-1] * 10000
def Fibo(n):
if n == 0:
return 0
if n == 1:
return 1
if table[n] != -1:
return table[n]
table[n] = Fibo(n-1) + Fibo(n-2)
return table[n]
print(Fibo(100))
再帰を使いたい!(メモ化再帰法)
これもほとんど0秒で答えが出る!
14. Characterクラス
変数
Atk, Def, Spd
関数
Damage: 引数に相手の攻撃力を取って
ダメージを受ける関数
Playerクラス
変数
Atk, Def, Spd, Lv, Exp
関数
Damage: 引数に相手の攻撃力を取って
ダメージを受ける関数Enemyクラス
変数
Atk, Def, Spd
関数
Damage
Move: 人工知能で動かす
HP変数を忘れた!!
15. Characterクラス
変数
Atk, Def, Spd, Hp
関数
Damage: 引数に相手の攻撃力を取って
ダメージを受ける関数
Playerクラス
変数
Atk, Def, Spd, Lv, Exp, Hp
関数
Damage: 引数に相手の攻撃力を取って
ダメージを受ける関数Enemyクラス
変数
Atk, Def, Spd, Hp
関数
Damage
Move: 人工知能で動かす
19. class A:
def __init__(self, x):
self.value = x
def tostr(self):
return "A: {}".format(self.value)
class B:
def __init__(self, x, y):
self.name = x
self.value = y
def tostr(self):
return "B: {}->{}".format(self.name,self.value)
lis = [A(100), B("K3", 20)]
for x in lis:
print(x.tostr())
A: 100
B: K3->20
21. イメージ
class Person:
****
class Japanese(Person):
****
class American(Person):
****
people = [Japanese("Yuuki", "Ota", 20, "Male"),
American("Tomohiro", "Shimizu", 24, "Female")]
for p in people:
print(p.get_name())
print(p.to_str())
Ota Yuuki
Ota Yuuki(20, Male)
Tomohiro Shimizu
Tomohiro Shimizu(24, Female)
Output .