added a very good (or very bad) implementation of day 6.

This commit is contained in:
didier amyot committed 2023-12-06 12:00:05 -05:00
1 parent 4392344bc4
commit c1731aaff3
2 files changed
+28

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
# frozen_string_literal: true
def get_critical_points(time, record)
delta = Math.sqrt(time*time - 4 * record)
epsilon = 0.000000000001 # math is not life
[(time - delta)/2, (time + delta)/2 - epsilon]
end
def number_of_possible_way_to_beat_the_record(time, record)
critical_points = get_critical_points(time, record)
critical_points[1].floor - critical_points[0].floor
end
inputs = [[56, 334], [71, 1135], [79, 1350], [99, 2430]]
part_1 = inputs.map { |x| number_of_possible_way_to_beat_the_record x[0], x[1] }
.reduce 1, :*
puts "Part 1: #{part_1}"
part_2 = number_of_possible_way_to_beat_the_record 56717999, 334113513502430
puts "Part 2: #{part_2}"
+2
View File
@@ -0,0 +1,2 @@
Time: 56 71 79 99
Distance: 334 1135 1350 2430