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 {
7
7
type Secret = Long
8
8
9
9
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
11
11
12
12
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
16
16
}
17
17
18
18
def secretIterator (initialSecret : Secret ): Iterator [Secret ] =
You can’t perform that action at this time.
0 commit comments