summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2012-04-30 12:52:03 +0200
committermanuel <manuel@mausz.at>2012-04-30 12:52:03 +0200
commit1e57066bc5fdc877a01620f48e2805e11760f21b (patch)
tree603de70117bb0cb9d7336ad12c76dfaf34e512ad
parent03f9b3f6712a35afbe2f705401e3c776425fb67f (diff)
downloadffp-1e57066bc5fdc877a01620f48e2805e11760f21b.tar.gz
ffp-1e57066bc5fdc877a01620f48e2805e11760f21b.tar.bz2
ffp-1e57066bc5fdc877a01620f48e2805e11760f21b.zip
adding exercise 4 part 2
-rw-r--r--AufgabeFFP4.hs25
1 files changed, 10 insertions, 15 deletions
diff --git a/AufgabeFFP4.hs b/AufgabeFFP4.hs
index 4b49a61..1c10dd2 100644
--- a/AufgabeFFP4.hs
+++ b/AufgabeFFP4.hs
@@ -118,21 +118,16 @@ dynamic compute bnds = t
118 118
119bndsB :: (Integer, Integer) -> ((Integer, Integer), (Integer, Integer)) 119bndsB :: (Integer, Integer) -> ((Integer, Integer), (Integer, Integer))
120bndsB (n, k) = ((0, 0), (n, k)) 120bndsB (n, k) = ((0, 0), (n, k))
121{-- | k == 0 = ((0,0), (1,1))
122 | n == k = ((0,0), (1,1))
123 | n < k = ((0,0), (0,0))
124 | otherwise = ((0, 0), (n, k))--}
125 121
126compB :: Table (Integer, Integer) (Integer, Integer) -> (Integer, Integer) -> (Integer, Integer) 122compB :: Table Integer (Integer, Integer) -> (Integer, Integer) -> Integer
127compB t (n, k) 123compB t (n, k)
128 | k == 0 = (1, 0) 124 | k == 0 = 1
129 | n == k = (1, 0) 125 | n == k = 1
130 | k == 1 = (n, 0) 126 | k == 1 = n
131 | n < k = (0, 0) 127 | n < k = 0
132 | otherwise = findTable t (n - 1, k - 1) 128 | otherwise = findTable t (n - 1, k - 1) + findTable t (n - 1, k)
133 129
134binomDyn :: (Integer, Integer) -> (Integer, Integer) 130binomDyn :: (Integer, Integer) -> Integer
135binomDyn (m, n) = findTable t (m, n) 131binomDyn (n, k) = findTable t (n, k)
136 where 132 where
137 t = dynamic compB (bndsB (m, n)) 133 t = dynamic compB (bndsB (n, k))
138