Skip to content

Commit 70a4fe3

Browse files
committed
day 22, part 1
1 parent 056c41b commit 70a4fe3

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

2024/ruby/day22.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
require_relative 'day'
2+
require 'parallel'
3+
4+
class Day22 < Day # >
5+
6+
# @example
7+
# day.part1 #=> 37327623
8+
def part1
9+
initial_secret_numbers = input.split("\n").map(&:to_i)
10+
Parallel.map(initial_secret_numbers) { |initial_secret_number|
11+
2000.times.inject(initial_secret_number) { |secret_number, _|
12+
secret_number = ((secret_number * 64) ^ secret_number) % 16777216
13+
secret_number = ((secret_number / 32).floor ^ secret_number) % 16777216
14+
secret_number = ((secret_number * 2048) ^ secret_number) % 16777216
15+
}
16+
}.reduce(&:+)
17+
end
18+
19+
# @example
20+
# day.part2 #=> 'how are you'
21+
def part2
22+
end
23+
24+
EXAMPLE_INPUT = File.read("../inputs/day22-example-input.txt")
25+
end

0 commit comments

Comments
 (0)