readpfds_6.3.2

753 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
753
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

readpfds_6.3.2

  1. 1. * reverseはmonotonicな関数* reverseの実行には|r|ステップかかる* |r|ステップ = 借金* 最も外側にあるreverse suspは|f|回のtailの後にforce* |r| =~ |f| の時reverseして、* オペレーション毎に借金を1つ返済するなら、* reverseをforceするまでにその借金を返済すれば良い
  2. 2. let q0 = (m, f, m, r)let q1 = tail q0 # <= f ++ reverse r -- |r|借金let q2 = tail q1let q3 = tail q2...let qm = tail qm-1 # <= force (reverse r) -- 返済期限ここの時任意のkで分岐が発生したとするとqkからqmまで分岐先でも二重に実行されることになる。
  3. 3. let q0 = (m, f, m, r)let q0 = q0let q1 = tail q0 # <= f ++ reverse r -- |r|借金...let qm = tail qm-1 # <= force (reverse r) -- 返済期限let q1 = tail q0 # <= f ++ reverse r -- |r|借金...let qm = tail qm-1 # <= force (reverse r) -- 返済期限
  4. 4. d(i) = fのi番目の要素における借金D(i) = 0からiまでのd(j)を足しこんだものさらに↓を不変条件とするD(i) <= min(2i, |f| - |r|)

×