home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
MAGAZINE
/
DDJ9309.ZIP
/
1993-SEP.ZIP
/
RECUR.ASC
< prev
next >
Wrap
Text File
|
1993-07-26
|
2KB
|
126 lines
_RECURSIVE WORLDS_
by Clifford A. Pickover
Example 1:
(a)
1 Factorial(X);
2 IF X=0 then Factorial=1
3 ELSE Factorial=X*Factorial(X-1)
4 END
(b)
1 Fibonacci(X)
2 IF N <= 1 then Fibonacci=1
3 ELSE Fibonacci=Fibonacci(N-1)+Fibonacci(N-2)
4 END
(c)
Fibonacci
F[0]=1;F[1]=1;
For i = 2 to 30
F[i]=F[i-1]+F[i-2]
END
END
Example 2:
1 S = 7; Sz = S-1; M = 20;
2 for (h=1; h<=M; h++) {
3 /* rand returns a value between 0 and 32767 */
4 v = ((float) rand()/32767.)*S;
5 w = ((float) rand()/32767.)*S;
6 a[v][w]=1;
7 a[Sz-v][w]=1;
8 a[Sz-v][Sz-w]=1;
9 a[v][Sz-w]=1;
10 }
(b)
N=0; Sz = S - 1;
for (i=0; i<=S; i++)
for (j=0;j<=S; j++)
if (a[i][j]==1)
{N++; x[h]=i-Sz/2; y[h]=j-Sz/2;}
(c)
for (i=1; i<=N; i++) {
for (j=1; j<=N; j++) {
for (k=1; k<=N; k++) {
X = alpha[1]*x[h]+alpha[2]*x[h]+alpha[3]*x[h]
Y = alpha[1]*y[h]+alpha[2]*y[h]+alpha[3]*y[h]
PlotSquareAt(X,Y)
}
}
}
Example 3:
(a)
/* initialize p array to zero */
for(i=0; i<900; i++) p&lbrk.i&rbrk.=0;
total=500000;
/* catalog 500000 vector lengths */
for(i=0; i<total; i++) {
rnd1 = ((float) rand()/32767.)*Npts;
rnd2 = ((float) rand()/32767.)*Npts;
xterm = corx[rnd1]-corx[rnd2];
yterm = cory[rnd1]-cory[rnd2];
dist = sqrt (xterm*xterm+yterm*yterm);
dist = dist+.5;
p[(int)dist]++;
}
(b)
for(i=1; i<900;i++) {
ps[i]=.25*(float)p[i-1]+.5*(float)p[i]+.25*(float)p[i+1];
}
Example 4:
(a)
sum=0; summ=0;
for(i=0; i<900;i++) {
summ=summ+p[i];
sum=sum+p[i]*i*i;
}
Rg=sqrt(sum/((float) summ*2)) ;
(b)
Sz = S - 1;
for (h=1; h<=40; h++) {
v = ((float) rand()/32767.)*S;
w = ((float) rand()/32767.)*S;
a[v][w]=1;
a[Sz-v][w]=1;
}
(c)
Sz = S - 1;
for (h=1;i h<=30; h++) {
v = ((float) rand()/32767.)*S;
w = ((float) rand()/32767.)*S;
a[v][w]=1;
a[Sz-v][Sz-w]=1;
}