Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
26
Task/Executable-library/Ruby/executable-library-1.rb
Normal file
26
Task/Executable-library/Ruby/executable-library-1.rb
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# hailstone.rb
|
||||
module Hailstone
|
||||
module_function
|
||||
def hailstone n
|
||||
seq = [n]
|
||||
until n == 1
|
||||
n = (n.even?) ? (n / 2) : (3 * n + 1)
|
||||
seq << n
|
||||
end
|
||||
seq
|
||||
end
|
||||
end
|
||||
|
||||
if __FILE__ == $0
|
||||
include Hailstone
|
||||
|
||||
# for n = 27, show sequence length and first and last 4 elements
|
||||
hs27 = hailstone 27
|
||||
p [hs27.length, hs27[0..3], hs27[-4..-1]]
|
||||
|
||||
# find the longest sequence among n less than 100,000
|
||||
n, len = (1 ... 100_000) .collect {|n|
|
||||
[n, hailstone(n).length]} .max_by {|n, len| len}
|
||||
puts "#{n} has a hailstone sequence length of #{len}"
|
||||
puts "the largest number in that sequence is #{hailstone(n).max}"
|
||||
end
|
||||
11
Task/Executable-library/Ruby/executable-library-2.rb
Normal file
11
Task/Executable-library/Ruby/executable-library-2.rb
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# hsfreq.rb
|
||||
require 'hailstone'
|
||||
|
||||
h = Hash.new(0)
|
||||
last = 99_999
|
||||
(1..last).each {|n| h[Hailstone.hailstone(n).length] += 1}
|
||||
length, count = h.max_by {|length, count| count}
|
||||
|
||||
puts "Given the hailstone sequences from 1 to #{last},"
|
||||
puts "the most common sequence length is #{length},"
|
||||
puts "with #{count} such sequences."
|
||||
Loading…
Add table
Add a link
Reference in a new issue