File tree Expand file tree Collapse file tree 1 file changed +4
-4
lines changed
src/main/scala/eu/sim642/adventofcode2024 Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -7,12 +7,12 @@ object Day22 {
77 type Secret = Long
88
99 def mix (secret : Secret , value : Secret ): Secret = value ^ secret
10- def prune (secret : Secret ): Secret = secret % 16777216 // TODO: bitwise
10+ def prune (secret : Secret ): Secret = secret & 0xFFFFFF // % 16777216
1111
1212 def nextSecret (secret : Secret ): Secret = {
13- val secret1 = prune(mix(secret, secret * 64 ))
14- val secret2 = prune( mix(secret1, secret1 / 32 ))
15- prune(mix(secret2, secret2 * 2048 ))
13+ val secret1 = prune(mix(secret, secret << 6 )) // * 64
14+ val secret2 = mix(secret1, secret1 >> 5 ) // / 32, no prune needed after right shift
15+ prune(mix(secret2, secret2 << 11 )) // * 2048
1616 }
1717
1818 def secretIterator (initialSecret : Secret ): Iterator [Secret ] =
You can’t perform that action at this time.
0 commit comments