Calkin-Wilf sequence: Difference between revisions
Content added Content deleted
m (Correcting minor formatting error.) |
(add RPL) |
||
Line 2,385: | Line 2,385: | ||
for 83116/51639, the element number for the Calkin─Wilf sequence is: 123,456,789th |
for 83116/51639, the element number for the Calkin─Wilf sequence is: 123,456,789th |
||
</pre> |
</pre> |
||
=={{header|RPL}}== |
|||
{{works with|HP|49g}} |
|||
≪ { } SWAP |
|||
'''WHILE''' DUP '''REPEAT ''' |
|||
ROT OVER IDIV2 |
|||
4 ROLL ROT + SWAP |
|||
'''END''' ROT DROP2 |
|||
≫ '<span style="color:blue">CONTFRAC</span>' STO |
|||
≪ {1} |
|||
'''WHILE''' DUP2 SIZE > '''REPEAT''' |
|||
DUP DUP SIZE GET |
|||
DUP IP R→I 2 * 1 + SWAP - INV EVAL + |
|||
'''END''' NIP |
|||
≫ ≫ '<span style="color:blue">CWILF</span>' STO |
|||
≪ |
|||
<span style="color:blue">CONTFRAC</span> DUP SIZE |
|||
'''IF''' DUP MOD '''THEN''' DROP '''ELSE''' |
|||
DUP2 GET 1 - PUT 1 + '''END''' |
|||
1 → frac pow2 |
|||
≪ 0 |
|||
1 frac SIZE '''FOR''' j |
|||
frac j GET |
|||
'''WHILE''' DUP '''REPEAT''' |
|||
'''IF''' j 2 MOD '''THEN''' SWAP pow2 + SWAP '''END''' |
|||
2 'pow2' STO* |
|||
1 - |
|||
'''END''' DROP |
|||
'''NEXT''' |
|||
≫ ≫ '<span style="color:blue">CWPOS</span>' STO |
|||
20 <span style="color:blue">CWILF</span> |
|||
83116 51639 <span style="color:blue">CWPOS</span> |
|||
{{out}} |
|||
<pre> |
|||
2: {1 '1/2' 2 '1/3' '3/2' '2/3' 3 '1/4' '4/3' '3/5' '5/2' '2/5' '5/3' '3/4' 4 '1/5' '5/4' '4/7' '7/3' '3/8'} |
|||
1: 123456789 |
|||
</pre> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
||
{{trans|Python}} |
{{trans|Python}} |
||
Line 2,411: | Line 2,451: | ||
123456789 |
123456789 |
||
</pre> |
</pre> |
||
=={{header|Rust}}== |
=={{header|Rust}}== |
||
<syntaxhighlight lang="rust">// [dependencies] |
<syntaxhighlight lang="rust">// [dependencies] |