From be7bc14940ea8dc7a9ff1e4e1fd12e855bd45cf2 Mon Sep 17 00:00:00 2001 From: Adam Hellberg Date: Tue, 24 Dec 2024 09:56:28 +0100 Subject: [PATCH] Add notes for 2024 day 24 --- src/2024/24/manual_input | 340 +++++++++++++++++++++++++++++++++++++++ src/2024/24/notes.txt | 67 ++++++++ 2 files changed, 407 insertions(+) create mode 100644 src/2024/24/manual_input create mode 100644 src/2024/24/notes.txt diff --git a/src/2024/24/manual_input b/src/2024/24/manual_input new file mode 100644 index 0000000..7d0a214 --- /dev/null +++ b/src/2024/24/manual_input @@ -0,0 +1,340 @@ +x00: 1 +x01: 0 +x02: 0 +x03: 1 +x04: 1 +x05: 1 +x06: 0 +x07: 0 +x08: 0 +x09: 1 +x10: 0 +x11: 0 +x12: 0 +x13: 1 +x14: 0 +x15: 0 +x16: 1 +x17: 0 +x18: 0 +x19: 0 +x20: 0 +x21: 0 +x22: 1 +x23: 1 +x24: 0 +x25: 1 +x26: 0 +x27: 1 +x28: 1 +x29: 1 +x30: 1 +x31: 1 +x32: 0 +x33: 1 +x34: 1 +x35: 0 +x36: 1 +x37: 1 +x38: 1 +x39: 0 +x40: 1 +x41: 0 +x42: 0 +x43: 1 +x44: 1 +y00: 1 +y01: 1 +y02: 1 +y03: 1 +y04: 0 +y05: 1 +y06: 0 +y07: 1 +y08: 0 +y09: 1 +y10: 1 +y11: 1 +y12: 1 +y13: 0 +y14: 0 +y15: 1 +y16: 1 +y17: 1 +y18: 1 +y19: 1 +y20: 1 +y21: 0 +y22: 0 +y23: 0 +y24: 1 +y25: 1 +y26: 1 +y27: 0 +y28: 1 +y29: 1 +y30: 1 +y31: 0 +y32: 0 +y33: 1 +y34: 0 +y35: 1 +y36: 0 +y37: 0 +y38: 1 +y39: 1 +y40: 1 +y41: 0 +y42: 1 +y43: 1 +y44: 1 + +dff AND ntb -> wsq +y28 AND x28 -> sfd +ttg AND brk -> bww +mgn AND vgd -> jvs +hvt XOR qvb -> z15 +qjh OR ddk -> rpt +grj AND jqn -> rqr +x28 XOR y28 -> nbg +y24 AND x24 -> spw +y03 AND x03 -> mcf +pjn OR smj -> jbd +y07 AND x07 -> ddw +skk XOR qfr -> z29 +y38 XOR x38 -> fsp +y41 AND x41 -> tfc +y37 AND x37 -> vbq +y27 XOR x27 -> rps +trr OR fsd -> vgd +sgn XOR hrp -> z03 +rtq OR kcn -> dtq +x16 AND y16 -> fqs +x05 AND y05 -> tcn +spm XOR qnw -> z44 +wjs OR sdr -> hbk +x21 AND y21 -> hvb +mcf OR bvk -> cjv +pfp XOR srt -> z23 +dpj XOR nbg -> z28 +tcn OR jsd -> swj +rgn OR mfp -> z45 +wqv OR mkv -> dpj +y35 AND x35 -> fsd +thj XOR qnb -> z18 +dmg OR dwj -> wpg +x04 AND y04 -> grm +y32 XOR x32 -> qrw +fpp AND wdv -> cpp +tvv XOR hbk -> z43 +x01 XOR y01 -> dgj +pvw XOR gsp -> z14 +x15 AND y15 -> stw +dsr OR hsd -> gmw +src XOR qmh -> z33 +cdh AND wfs -> ckm +hwc OR rrk -> cdh +ptf OR stw -> vfj +src AND qmh -> fmn +srn AND vfj -> crf +sgh XOR wmb -> z40 +nhk AND gmw -> cjn +fpp XOR wdv -> z13 +x39 XOR y39 -> dcs +x22 AND y22 -> jmg +y29 AND x29 -> ddk +fsm AND rtg -> ctk +x41 XOR y41 -> mkb +x19 XOR y19 -> nhk +ggk OR qwq -> tgb +y42 AND x42 -> wjs +y10 XOR x10 -> dff +y05 XOR x05 -> sss +brr AND nff -> hwc +kpb XOR ktw -> z35 +x40 AND y40 -> fvs +dtq AND vkh -> mjr +tfc OR rpg -> sgp +vfj XOR srn -> z16 +x15 XOR y15 -> hvt +nnc OR rnb -> src +btt OR jqj -> qvb +hdp AND dcs -> ddp +y26 XOR x26 -> mbh +y11 XOR x11 -> brr +wnc OR fmn -> rtg +y14 XOR x14 -> pvw +ftw AND jbd -> wfb +y27 AND x27 -> mkv +vvj OR gjk -> sgn +y09 AND x09 -> gwn +ftw XOR jbd -> z21 +y35 XOR x35 -> ktw +mbh AND khj -> krr +x36 AND y36 -> ksr +x08 AND y08 -> vmg +wfs XOR cdh -> z12 +tnt AND nbs -> vhp +dqw XOR sgp -> z42 +sqw AND bsc -> fns +mqg OR ddp -> wmb +brk XOR ttg -> z17 +dff XOR ntb -> z10 +y42 XOR x42 -> dqw +y02 AND x02 -> gjk +gqc XOR vqv -> cgr +npm OR wsq -> nff +hdp XOR dcs -> z39 +y13 AND x13 -> dnj +x08 XOR y08 -> sqw +ksr OR jvs -> gqc +x43 AND y43 -> vhq +y12 XOR x12 -> wfs +gmw XOR nhk -> z19 +x16 XOR y16 -> srn +cjv AND qws -> fgb +wdh OR ckb -> hdp +y09 XOR x09 -> npw +mkb AND wwj -> rpg +y17 AND x17 -> crc +y13 XOR x13 -> fpp +ctk OR vbw -> kpb +x00 AND y00 -> nvd +y04 XOR x04 -> qws +x44 AND y44 -> mfp +nvd XOR dgj -> z01 +y22 XOR x22 -> pcw +dbm XOR rps -> z27 +ntg OR sfd -> qfr +ddg OR fvs -> wwj +y40 XOR x40 -> sgh +ktw AND kpb -> trr +bsc XOR sqw -> z08 +wpg AND mhr -> ptr +x01 AND y01 -> ggk +cpp OR dnj -> gsp +vbb OR vhq -> qnw +y20 XOR x20 -> kbm +sgp AND dqw -> sdr +x30 XOR y30 -> rmb +wrk OR krr -> dbm +x18 AND y18 -> dsr +srt AND pfp -> dmg +rps AND dbm -> wqv +qnw AND spm -> rgn +npw AND djg -> scf +sgh AND wmb -> ddg +y19 AND x19 -> twp +nbg AND dpj -> ntg +kbm XOR hqk -> z20 +ptr OR spw -> nbs +x37 XOR y37 -> vqv +qvb AND hvt -> ptf +x18 XOR y18 -> thj +x43 XOR y43 -> tvv +scf OR gwn -> ntb +y21 XOR x21 -> ftw +y23 AND x23 -> dwj +x33 XOR y33 -> qmh +rtg XOR fsm -> z34 +crc OR bww -> qnb +x44 XOR y44 -> spm +djg XOR npw -> z09 +rqr OR ddw -> bsc +wfb OR hvb -> vwf +hqk AND kbm -> smj +fsp AND hbm -> wdh +x26 AND y26 -> wrk +hrp AND sgn -> bvk +tvv AND hbk -> vbb +y25 AND x25 -> tnt +rbw XOR tgb -> z02 +x33 AND y33 -> wnc +y24 XOR x24 -> mhr +vmg OR fns -> djg +rmb AND rpt -> kcn +y23 XOR x23 -> srt +nff XOR brr -> z11 +jkc OR jmg -> pfp +crm AND sss -> jsd +x11 AND y11 -> rrk +y32 AND x32 -> nnc +qmd OR vhp -> khj +x10 AND y10 -> npm +fgb OR grm -> crm +vwf XOR pcw -> z22 +pcw AND vwf -> jkc +x34 XOR y34 -> fsm +pvw AND gsp -> jqj +skk AND qfr -> qjh +dhf OR ckm -> wdv +y31 AND x31 -> hgw +x14 AND y14 -> btt +y30 AND x30 -> rtq +dgj AND nvd -> qwq +fqs OR crf -> ttg +x00 XOR y00 -> z00 +y20 AND x20 -> pjn +x29 XOR y29 -> skk +vkh XOR dtq -> hpc +rbw AND tgb -> vvj +thj AND qnb -> hsd +cjn OR twp -> hqk +y02 XOR x02 -> rbw +y38 AND x38 -> ckb +y12 AND x12 -> dhf +x17 XOR y17 -> brk +y34 AND x34 -> vbw +vbq OR cgr -> hbm +qrw AND hpc -> rnb +y39 AND x39 -> mqg +cjv XOR qws -> z04 +y36 XOR x36 -> mgn +x03 XOR y03 -> hrp +wwj XOR mkb -> z41 +# +# SWAPS: +# z06,rjv; z25,qmd; z31,vkh +# +# ORIGINAL: crm XOR sss -> z05 +crm XOR sss -> z05 +# +# ORIGINAL: y06 AND x06 -> z06 +y06 XOR x06 -> z06 +y06 AND x06 -> rjv +# +x07 XOR y07 -> jqn +swj AND rjv -> spj +swj XOR rjv -> hwk +spj OR hwk -> grj +# ORIGINAL: jqn XOR grj -> z07 +jqn XOR grj -> z07 +# +# ORIGINAL: wpg XOR mhr -> z24 +wpg XOR mhr -> z24 +# +# ORIGINAL: nbs XOR tnt -> z25 +nbs XOR tnt -> qmd +y25 XOR x25 -> z25 +# +# ORIGINAL: khj XOR mbh -> z26 +khj XOR mbh -> z26 +# +# ORIGINAL: rpt XOR rmb -> z30 +rpt XOR rmb -> z30 +# +# ORIGINAL: mjr OR hgw -> z31 +mjr OR hgw -> vkh +y31 XOR x31 -> z31 +# +# ORIGINAL: hpc XOR qrw -> z32 +hpc XOR qrw -> z32 +# +# ORIGINAL: mgn XOR vgd -> z36 +mgn XOR vgd -> z36 +# +# ORIGINAL: gqc AND vqv -> z37 +gqc AND vqv -> z37 +# +# ORIGINAL: fsp XOR hbm -> z38 +fsp XOR hbm -> z38 diff --git a/src/2024/24/notes.txt b/src/2024/24/notes.txt new file mode 100644 index 0000000..61dacf9 --- /dev/null +++ b/src/2024/24/notes.txt @@ -0,0 +1,67 @@ +Part 2: + +$ ./solve.rb input +60614602965288 +MISMATCH FOUND at 5: + Expected 1 + 1 to produce 10 but was 00 + 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0000 + + 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0000 + = 00 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 +MISMATCH FOUND at 6: + Expected 1 + 1 to produce 10 but was 01 + 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 + + 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 + = 00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 +MISMATCH FOUND at 25: + Expected 1 + 1 to produce 10 but was 01 + 0 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000 + + 0 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000 + = 00 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000 +MISMATCH FOUND at 30: + Expected 1 + 1 to produce 10 but was 00 + 0 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 + + 0 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 + = 00 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 +MISMATCH FOUND at 31: + Expected 1 + 1 to produce 10 but was 01 + 0 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 + + 0 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 + = 00 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 +MISMATCH FOUND at 36: + Expected 1 + 1 to produce 10 but was 00 + 0 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 + + 0 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 + = 00 0000 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 + +These Zs are wrong: +z05, z06, z25, z30, z31, z36 + +These are the operations for them: + crm XOR sss -> z05 + y06 AND x06 -> z06 + nbs XOR tnt -> z25 + rpt XOR rmb -> z30 + mjr OR hgw -> z31 + mgn XOR vgd -> z36 + +z05, z25, z30, z36 are already XOR +but z06 is AND, and z31 is OR. That is wrong. + +for z05 when adding 1+1, the output seems to be appearing in z07 instead of z06: + y06 AND x06 -> z06 + jqn XOR grj -> z07 + +If we swap them we get one less error bit +FIRST SWAP: z06,z07 + + +z30 is another XOR: +when adding 1+1, output appears in z32 instead of z31, swap? + yes: fewer error bits after swap +SECOND SWAP: z31,z32 + +After these two swaps, errors remain on z25 and z36 + +z25 is another XOR: +when adding 1+1, output appears in z25 instead of z26, swap them? + khj XOR mbh -> z26 -- 2.51.2