Stern-Brocot sequence: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add Forth) |
Not a robot (talk | contribs) (Add MAD) |
||
Line 3,153: | Line 3,153: | ||
Task 5: PASS</pre> |
Task 5: PASS</pre> |
||
=={{header|MAD}}== |
|||
<lang MAD> NORMAL MODE IS INTEGER |
|||
VECTOR VALUES FRST15 = $20HFIRST 15 NUMBERS ARE*$ |
|||
VECTOR VALUES FRSTAT = $6HFIRST ,I3,S1,11HAPPEARS AT ,I4*$ |
|||
VECTOR VALUES NUMBER = $I4*$ |
|||
DIMENSION STERN(1200) |
|||
STERN(1) = 1 |
|||
STERN(2) = 1 |
|||
R GENERATE FIRST 1200 MEMBERS OF THE STERN-BROCOT SEQUENCE |
|||
THROUGH GENSEQ, FOR I = 1, 1, I .GE. 600 |
|||
STERN(I*2-1) = STERN(I) + STERN(I-1) |
|||
GENSEQ STERN(I*2) = STERN(I) |
|||
R PRINT FIRST 15 VALUES OF STERN-BROCOT SEQUENCE |
|||
PRINT FORMAT FRST15 |
|||
THROUGH P15, FOR I = 1, 1, I .G. 15 |
|||
P15 PRINT ON LINE FORMAT NUMBER, STERN(I) |
|||
R PRINT FIRST OCCURRENCE OF 1..10 |
|||
THROUGH FRST10, FOR I = 1, 1, I .G. 10 |
|||
FRST10 PRINT FORMAT FRSTAT, I, FIRST.(I) |
|||
PRINT FORMAT FRSTAT, 100, FIRST.(100) |
|||
R SEARCH FOR FIRST OCCURRENCE OF N IN SEQUENCE |
|||
INTERNAL FUNCTION(N) |
|||
ENTRY TO FIRST. |
|||
THROUGH SCAN, FOR K = 1, 1, I .G. 1200 |
|||
SCAN WHENEVER N .E. STERN(K), FUNCTION RETURN K |
|||
END OF FUNCTION |
|||
END OF PROGRAM</lang> |
|||
{{out}} |
|||
<pre style="height: 45ex;">FIRST 15 NUMBERS ARE |
|||
1 |
|||
1 |
|||
2 |
|||
1 |
|||
3 |
|||
2 |
|||
3 |
|||
1 |
|||
4 |
|||
3 |
|||
5 |
|||
2 |
|||
5 |
|||
3 |
|||
4 |
|||
FIRST 1 APPEARS AT 1 |
|||
FIRST 2 APPEARS AT 3 |
|||
FIRST 3 APPEARS AT 5 |
|||
FIRST 4 APPEARS AT 9 |
|||
FIRST 5 APPEARS AT 11 |
|||
FIRST 6 APPEARS AT 33 |
|||
FIRST 7 APPEARS AT 19 |
|||
FIRST 8 APPEARS AT 21 |
|||
FIRST 9 APPEARS AT 35 |
|||
FIRST 10 APPEARS AT 39 |
|||
FIRST 100 APPEARS AT 1179</pre> |
|||
=={{header|Oforth}}== |
=={{header|Oforth}}== |