Calkin-Wilf sequence: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) m (→{{header|11l}}) |
(→{{header|Ruby}}: add Ruby) |
||
Line 1,396: | Line 1,396: | ||
</pre> |
</pre> |
||
=={{header|Ruby}}== |
|||
{{trans|Python}} |
|||
<lang ruby>cw = Enumerator.new do |y| |
|||
y << a = 1.to_r |
|||
loop { y << a = 1/(2*a.floor + 1 -a) } |
|||
end |
|||
def term_num(rat) |
|||
num, den, res, pwr, dig = rat.numerator, rat.denominator, 0, 0, 1 |
|||
while den > 0 |
|||
num, (digit, den) = den, num.divmod(den) |
|||
digit.times do |
|||
res |= dig << pwr |
|||
pwr += 1 |
|||
end |
|||
dig ^= 1 |
|||
end |
|||
res |
|||
end |
|||
puts cw.take(20).join(", ") |
|||
puts term_num (83116/51639r) |
|||
</lang> |
|||
<pre>1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1, 1/4, 4/3, 3/5, 5/2, 2/5, 5/3, 3/4, 4/1, 1/5, 5/4, 4/7, 7/3, 3/8 |
|||
123456789 |
|||
</pre> |
|||
=={{header|Rust}}== |
=={{header|Rust}}== |
||
<lang rust>// [dependencies] |
<lang rust>// [dependencies] |