Bernoulli numbers: Difference between revisions
Content added Content deleted
(→{{header|RPL}}: HP-49+ version) |
|||
Line 3,932: | Line 3,932: | ||
| |
| |
||
≪ DUP2 IM * ROT IM ROT RE * - |
≪ DUP2 IM * ROT IM ROT RE * - |
||
≫ ' |
≫ '<span style="color:blue">FracSub</span>' STO |
||
≪ DUP C→R ABS SWAP ABS DUP2 < ≪ SWAP ≫ IFT |
≪ DUP C→R ABS SWAP ABS DUP2 < ≪ SWAP ≫ IFT |
||
'''WHILE''' DUP '''REPEAT''' SWAP OVER MOD '''END''' |
'''WHILE''' DUP '''REPEAT''' SWAP OVER MOD '''END''' |
||
DROP / |
DROP / |
||
≫ ' |
≫ '<span style="color:blue">FracSimp</span>' STO |
||
≪ |
≪ |
||
Line 3,943: | Line 3,943: | ||
1 m R→C + |
1 m R→C + |
||
'''IF''' m 2 ≥ '''THEN''' m 2 '''FOR''' j |
'''IF''' m 2 ≥ '''THEN''' m 2 '''FOR''' j |
||
DUP j 1 - GET OVER j GET |
DUP j 1 - GET OVER j GET <span style="color:blue">FracSub</span> |
||
C→R SWAP j 1 - * SWAP R→C |
C→R SWAP j 1 - * SWAP R→C |
||
<span style="color:blue">FracSimp</span> j 1 - SWAP PUT |
|||
-1 '''STEP END''' |
-1 '''STEP END''' |
||
'''NEXT''' 1 GET DUP RE SWAP 0 '''IFTE''' |
'''NEXT''' 1 GET DUP RE SWAP 0 '''IFTE''' |
||
≫ ' |
≫ '<span style="color:blue">BRNOU</span>' STO |
||
| |
| |
||
''( (a,b) (c,d) -- (e,f) )'' with e/f = a/b - c/d |
''( (a,b) (c,d) -- (e,f) )'' with e/f = a/b - c/d |
||
Line 3,969: | Line 3,969: | ||
|} |
|} |
||
5 <span style="color:blue">BRNOU</span> |
|||
⚫ | |||
22 <span style="color:blue">BRNOU</span> |
|||
⚫ | |||
5 BRNOU |
|||
22 BRNOU |
|||
⚫ | |||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 3,979: | Line 3,976: | ||
1: (854513,138) |
1: (854513,138) |
||
</pre> |
</pre> |
||
===HP-49+ version=== |
|||
From HP-49 models, RPL can natively handle (not too) long fractions. |
|||
{{works with|HP|49}} |
|||
≪ { } |
|||
1 ROT 1 + '''FOR''' m |
|||
m INV + |
|||
m 1 + → j |
|||
≪ '''WHILE''' 'j' DECR 2 ≥ '''REPEAT''' |
|||
j 1 - DUP2 GETI UNROT GET - |
|||
OVER * EVAL PUT |
|||
'''END''' |
|||
≫ |
|||
'''NEXT''' |
|||
HEAD |
|||
≫ '<span style="color:blue">BRNOU</span>' STO |
|||
≪ { } |
|||
0 ROT '''FOR''' n |
|||
'''IF''' n 2 > LASTARG MOD AND NOT '''THEN''' n <span style="color:blue">BRNOU</span> + '''END''' |
|||
'''NEXT''' |
|||
≫ '<span style="color:blue">TASK</span>' STO |
|||
⚫ | |||
30 <span style="color:blue">TASK</span> |
|||
{{out}} |
|||
⚫ | |||
1: {1 -1/2 1/6 -1/30 1/42 -1/30 5/66 -691/2730 7/6 -3617/510 43867/798 -174611/330 854513/138 -236364091/2730 8553103/6 -23749461029/870 8615841276005/14322 -7709321041217/510 2577687858367/6 -26315271553053477373/1919190 2929993913841559/6 -261082718496449122051/13530 1520097643918070802691/1806 -27833269579301024235023/690 596451111593912163277961/282 -5609403368997817686249127547/46410 495057205241079648212477525/66 -801165718135489957347924991853/1590 9149963634884862421418123812691/798 -2479392929313226753685415739663229/870 84483613348880041862046775994036021/354 -1215233140483755572040304994079820246041491/56786730} |
|||
⚫ | |||
Runs in 1 hour 30 minutes on a HP-50g. |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |