Continued fraction/Arithmetic/Construct from rational number: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 24: | Line 24: | ||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
||
=begin |
|||
Generate a continued fraction from a rational number |
|||
Nigel Galloway, February 4th., 2013 |
|||
=end |
|||
<lang ruby> |
<lang ruby> |
||
def r2cf(n1,n2) |
|||
while n2 > 0 |
|||
t1 = n1/n2; t2 = n2; n2 = n1 - t1 * n2; n1 = t2; yield t1 |
|||
end |
|||
end |
|||
</lang> |
</lang> |
||
===Testing=== |
|||
1/2 |
|||
<lang ruby>r2cf(1,2) {|n| print "#{n} "}</lang> |
|||
{{out}} |
|||
<pre> |
|||
0 2 |
|||
</pre> |
|||
3 |
|||
<lang ruby>r2cf(3,1) {|n| print "#{n} "}</lang>{{out}} |
|||
<pre> |
|||
3 |
|||
</pre> |
|||
23/8 |
|||
<lang ruby>r2cf(23,8) {|n| print "#{n} "}</lang> |
|||
{{out}} |
|||
<pre> |
|||
2 1 7 |
|||
</pre> |
|||
13/11 |
|||
<lang ruby>r2cf(13,11) {|n| print "#{n} "}</lang> |
|||
{{out}} |
|||
<pre> |
|||
1 5 2 |
|||
</pre> |
|||
22/7 |
|||
<lang ruby>r2cf(22,7) {|n| print "#{n} "}</lang> |
|||
{{out}} |
|||
<pre> |
|||
3 7 |
|||
</pre> |
|||
1.4142 |
|||
<lang ruby>r2cf(14142,10000) {|n| print "#{n} "}</lang> |
|||
{{out}} |
|||
<pre> |
|||
1 2 2 2 2 2 1 1 29 |
|||
</pre> |
|||
1.4142 |
|||
<lang ruby>r2cf(141421,100000) {|n| print "#{n} "}</lang> |
|||
{{out}} |
|||
<pre> |
|||
1 2 2 2 2 2 2 3 1 1 3 1 7 2 |
|||
</pre> |
|||
1.414214 |
|||
<lang ruby>r2cf(1414214,1000000) {|n| print "#{n} "}</lang> |
|||
{{out}} |
|||
<pre> |
|||
1 2 2 2 2 2 2 2 3 6 1 2 1 12 |
|||
</pre> |
|||
1.4142136 |
|||
<lang ruby>r2cf(14142136,10000000) {|n| print "#{n} "}</lang> |
|||
{{out}} |
|||
<pre> |
|||
1 2 2 2 2 2 2 2 2 2 6 1 2 4 1 1 2 |
|||
</pre> |