projects
/
advent-of-code-17.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed a bug that isn't a bug in practice
[advent-of-code-17.git]
/
src
/
advent15
/
advent15.hs
diff --git
a/src/advent15/advent15.hs
b/src/advent15/advent15.hs
index 84e2412f7d8cb78219606b03a04f58dd67e06765..4b16e08254898e636cc7b8befd6da560c4f56189 100644
(file)
--- a/
src/advent15/advent15.hs
+++ b/
src/advent15/advent15.hs
@@
-13,8
+13,8
@@
part1 = length $ filter (uncurry (==)) $ take 40000000 $ zip streamA streamB
part2 = length $ filter (uncurry (==)) $ take 5000000 $ zip fsA fsB
part2 = length $ filter (uncurry (==)) $ take 5000000 $ zip fsA fsB
- where fsA = filteredStream 3 streamA
- fsB = filteredStream 7 streamB
+ where fsA =
stream' 4 generatorA generatorAStart --
filteredStream 3 streamA
+ fsB =
stream' 8 generatorB generatorBStart --
filteredStream 7 streamB
generatorA = generator 2147483647 16807
generatorA = generator 2147483647 16807
@@
-32,5
+32,10
@@
toWord16 = fromIntegral
stream :: (Int -> Int) -> Int -> [Word16]
stream gen n0 = map toWord16 $ drop 1 $ iterate gen n0
stream :: (Int -> Int) -> Int -> [Word16]
stream gen n0 = map toWord16 $ drop 1 $ iterate gen n0
-filteredStream :: Word16 -> [Word16] -> [Word16]
-filteredStream f = filter ((== 0) . ( .&. f))
+stream' :: Int -> (Int -> Int) -> Int -> [Word16]
+stream' f gen n0 = map toWord16 $ filter ((== 0) . (`mod` f)) $ drop 1 $ iterate gen n0
+
+
+-- filteredStream :: Word16 -> [Word16] -> [Word16]
+-- filteredStream f = filter ((== 0) . ( .&. f))
+