Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def generate_k_type_1(n)
- k = Array.new
- divisor = 2
- new_k = n
- while new_k != 1
- new_k = (n / divisor).floor
- divisor *= 2
- k.push(new_k)
- end
- k
- end
- def generate_k_type_2(n)
- k = Array.new
- power = 1
- max = n / 3
- while true
- new_k = (3 ** power - 1) / 2
- power += 1
- if new_k <= max
- k.push(new_k)
- next
- end
- break
- end
- k.reverse
- end
- def generate_k_type_3(n)
- k = Array.new
- max_r = Math.log(n, 2).floor
- max_s = Math.log(n, 3).floor
- for r in 0..max_r
- for s in 0..max_s
- new_k = (2 ** r) * (3 ** s)
- if new_k < n
- k.push(new_k)
- end
- end
- end
- k.sort.reverse
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement