From cdb3c720c53d85c834cac2a0c36b1834630dab5d Mon Sep 17 00:00:00 2001 From: Bill Rossi Date: Thu, 4 Dec 2025 07:01:08 -0500 Subject: [PATCH] 2017 ruby day 15 --- ruby/2017/15/bin/problem | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 ruby/2017/15/bin/problem diff --git a/ruby/2017/15/bin/problem b/ruby/2017/15/bin/problem new file mode 100644 index 0000000..0cba6af --- /dev/null +++ b/ruby/2017/15/bin/problem @@ -0,0 +1,38 @@ +#!/usr/bin/env ruby + +def generate(value, factor) + (value * factor) % 2147483647 +end + +line_1, line_2 = STDIN.read.chomp.split("\n").to_a +generator_a_start = line_1.gsub("Generator A starts with ", "").to_i +generator_b_start = line_2.gsub("Generator B starts with ", "").to_i + +a_factor = 16807 +b_factor = 48271 + +a = generator_a_start +b = generator_b_start +pairs = 0 + +40000000.times do + a = generate(a, a_factor) + b = generate(b, b_factor) + pairs += 1 if (a & 65535 == b & 65535) +end + +puts "Part 1: #{pairs}" + +a = generator_a_start +b = generator_b_start +pairs = 0 + +5000000.times do + a = generate(a, a_factor) + a = generate(a, a_factor) until (a % 4) == 0 + b = generate(b, b_factor) + b = generate(b, b_factor) until (b % 8) == 0 + pairs += 1 if (a & 65535 == b & 65535) +end + +puts "Part 2: #{pairs}" \ No newline at end of file