Sudan function: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) (Added Perl) |
(Added XPL0 example.) |
||
Line 758: | Line 758: | ||
Values of F(1, x, y): |
Values of F(1, x, y): |
||
y/x 0 1 2 3 4 5 |
y/x 0 1 2 3 4 5 |
||
---------------------------- |
|||
0 | 0 1 2 3 4 5 |
|||
1 | 1 3 5 7 9 11 |
|||
2 | 4 8 12 16 20 24 |
|||
3 | 11 19 27 35 43 51 |
|||
4 | 26 42 58 74 90 106 |
|||
5 | 57 89 121 153 185 217 |
|||
6 | 120 184 248 312 376 440 |
|||
F(2, 1, 1) = 8 |
|||
F(3, 1, 1) = 10228 |
|||
F(2, 2, 1) = 27 |
|||
</pre> |
|||
=={{header|XPL0}}== |
|||
{{trans|Wren}} |
|||
<lang XPL0>func F; int N, X, Y; |
|||
[if N = 0 then return X + Y; |
|||
if Y = 0 then return X; |
|||
return F(N-1, F(N, X, Y-1), F(N, X, Y-1) + Y); |
|||
]; |
|||
int N, X, Y; |
|||
[Format(4, 0); |
|||
for N:= 0 to 1 do |
|||
[Text(0, "Values of F("); IntOut(0, N); Text(0, ", X, Y):^m^j"); |
|||
Text(0, "Y/X 0 1 2 3 4 5^m^j"); |
|||
Text(0, "----------------------------^m^j"); |
|||
for Y:= 0 to 6 do |
|||
[IntOut(0, Y); Text(0, " |"); |
|||
for X:= 0 to 5 do |
|||
RlOut(0, float(F(N, X, Y))); |
|||
CrLf(0); |
|||
]; |
|||
CrLf(0); |
|||
]; |
|||
Text(0, "F(2, 1, 1) = "); IntOut(0, F(2, 1, 1)); CrLf(0); |
|||
Text(0, "F(3, 1, 1) = "); IntOut(0, F(3, 1, 1)); CrLf(0); |
|||
Text(0, "F(2, 2, 1) = "); IntOut(0, F(2, 2, 1)); CrLf(0); |
|||
]</lang> |
|||
{{out}} |
|||
<pre> |
|||
Values of F(0, X, Y): |
|||
Y/X 0 1 2 3 4 5 |
|||
---------------------------- |
|||
0 | 0 1 2 3 4 5 |
|||
1 | 1 2 3 4 5 6 |
|||
2 | 2 3 4 5 6 7 |
|||
3 | 3 4 5 6 7 8 |
|||
4 | 4 5 6 7 8 9 |
|||
5 | 5 6 7 8 9 10 |
|||
6 | 6 7 8 9 10 11 |
|||
Values of F(1, X, Y): |
|||
Y/X 0 1 2 3 4 5 |
|||
---------------------------- |
---------------------------- |
||
0 | 0 1 2 3 4 5 |
0 | 0 1 2 3 4 5 |