From: Neil Smith Date: Sun, 12 Jan 2025 11:14:41 +0000 (+0000) Subject: Updated notes for day 24 investigation X-Git-Url: https://git.njae.me.uk/?a=commitdiff_plain;h=HEAD;p=advent-of-code-24.git Updated notes for day 24 investigation --- diff --git a/advent24/notes.hs b/advent24/notes.hs deleted file mode 100644 index 4f049a3..0000000 --- a/advent24/notes.hs +++ /dev/null @@ -1,35 +0,0 @@ -(wires, device) <- rd -putStrLn $ drawTree $ fmap show $ unfoldFromWire device "z01" -filter (not . snd) [(xi, (bit xi) == part1 (setInputs 0 (bit xi)) device) | xi <- [0..44] ] -equivalentTree (unfoldFromWire device "z01") (unfoldFromWire device "z01") - - -filter not [ (x + y) == part1 (setInputs x y) device | x <- [0..127] , y <- [0..127] ] - -equivalentTree ( unfoldFromWire device "z02") (makeAdder 2 "o1" 0) - -putStrLn $ drawTree $ fmap show $ (makeAdder 2 "o1" 0) - -[ (k, equivalentTree ( unfoldFromWire device ("z" ++ show2d k)) (makeAdder k "o1" 0)) | k <- [0..15] ] - -putStrLn $ unlines $ take 15 $ lines $ drawTree $ fmap show $ unfoldFromWire device "z14" -putStrLn $ unlines $ take 15 $ lines $ drawTree $ fmap show $ makeAdder 14 "o1" 0 - - -filter ((elem "carry01") . inputs) $ renamings device -filter ((== "vss") . output) $ renamings device - - - -ghci> putStrLn $ unlines $ fmap show $ sortOn (codeOfName . head . inputs) $ renamings $ swapWires "vss" "z14" device - -putStrLn $ unlines $ fmap show $ sortOn (codeOfName . head . inputs) $ device - - - - -(wires, device) <- rd -dc2 = replaceCarry 2 device - - - diff --git a/advent24/notes.txt b/advent24/notes.txt new file mode 100644 index 0000000..ec00b45 --- /dev/null +++ b/advent24/notes.txt @@ -0,0 +1,38 @@ +(wires, device) <- rd +putStrLn $ drawTree $ fmap show $ unfoldFromWire device "z01" +filter (not . snd) [(xi, (bit xi) == part1 (setInputs 0 (bit xi)) device) | xi <- [0..44] ] +equivalentTree (unfoldFromWire device "z01") (unfoldFromWire device "z01") + + +filter not [ (x + y) == part1 (setInputs x y) device | x <- [0..127] , y <- [0..127] ] + +equivalentTree ( unfoldFromWire device "z02") (makeAdder 2 "o1" 0) + +putStrLn $ drawTree $ fmap show $ (makeAdder 2 "o1" 0) + +[ (k, equivalentTree ( unfoldFromWire device ("z" ++ show2d k)) (makeAdder k "o1" 0)) | k <- [0..15] ] + +putStrLn $ unlines $ take 15 $ lines $ drawTree $ fmap show $ unfoldFromWire device "z14" +putStrLn $ unlines $ take 15 $ lines $ drawTree $ fmap show $ makeAdder 14 "o1" 0 + + +filter ((elem "carry01") . inputs) $ renamings device +filter ((== "vss") . output) $ renamings device + + + +ghci> putStrLn $ unlines $ fmap show $ sortOn (codeOfName . head . inputs) $ renamings $ swapWires "vss" "z14" device + +putStrLn $ unlines $ fmap show $ sortOn (codeOfName . head . inputs) $ device + + + + +(wires, device) <- rd +dc2 = replaceCarry 2 device + + +foldM (growSpine dc13) (Node {rootLabel = fromJust $ find ((== Carry) . gType) device, subForest = []}) [ (And, (Gate Xor [x0, y0] "")), (Or, (Gate And [x0, y0] "")), (Xor, (Gate Xor [x1, y1] "")) ] + +foldM (growSpine d21) (Node {rootLabel = fromJust $ find ((== Carry) . gType) d21, subForest = []}) [ (And, (Gate Xor ["x21", "y21"] "")), (Or, (Gate And ["x21", "y21"] "")), (Xor, (Gate Xor ["x22", "y22"] "")) ] +