We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9c202dd commit 1580750Copy full SHA for 1580750
src/main/scala/eu/sim642/adventofcode2024/Day22.scala
@@ -7,12 +7,12 @@ object Day22 {
7
type Secret = Long
8
9
def mix(secret: Secret, value: Secret): Secret = value ^ secret
10
- def prune(secret: Secret): Secret = secret %16777216 // TODO: bitwise
+ def prune(secret: Secret): Secret = secret &0xFFFFFF // % 16777216
11
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))
+ val secret1 = prune(mix(secret, secret <<6)) // * 64
+ val secret2 = mix(secret1, secret1 >>5) // / 32, no prune needed after right shift
+ prune(mix(secret2, secret2 <<11)) // * 2048
16
}
17
18
def secretIterator(initialSecret: Secret): Iterator[Secret] =
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
0 commit comments