summaryrefslogtreecommitdiff
path: root/percolation.hs
diff options
context:
space:
mode:
Diffstat (limited to 'percolation.hs')
-rw-r--r--percolation.hs24
1 files changed, 24 insertions, 0 deletions
diff --git a/percolation.hs b/percolation.hs
new file mode 100644
index 0000000..1f66375
--- /dev/null
+++ b/percolation.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE BangPatterns #-}
+import Control.Monad.State (State, get, put, runState, state)
+import Data.Array (Array)
+
+data Tree = Root Int Int | Node Int Tree
+
+data Forest = Array Int Tree
+
+findRoot :: Tree -> (Int, [(Int, Tree)])
+findRoot (Root i n) = (i, [])
+findRoot (Node i t) = (r, [(i, Node i ] ++ [])
+
+
+
+squareLatticeEdges :: Int -> Int -> [(Int, Int)]
+squareLatticeEdges d l =
+ [ (i, (l ^ j) * quot i (l ^ j) + mod (l ^ j + i + l ^ (j - 1)) (l ^ j))
+ | j <- [1 .. d]
+ , i <- [0 .. (l ^ d) - 1]
+ ]
+
+
+
+