|
|
http://www.cublog.cn/u/4455/?u=h ... howart.php?id=14129
[php]
float s = 1944, x[5], y[5], z[5], r[5], j, h, a, b, d, e;
int i = 33, c, l, f = 1;
int
g ()
{
return f = (f * 6478 + 1) % 65346;
}
m ()
{
x = g () - l;
y = (g () - l) / 4;
r = g () >> 4;
}
main ()
{
char t[1948] = " `MYmtw%FFlj%Jqig~%`jqig~Etsqnsj3stb", *p = t + 3, *k =
"3tjlq9TX";
l = s * 20;
while (i < s)
p[i++] = ' ' + 5;
for (i = 0; i < 5; i++)
z = (i ? z[i - 1] : 0) + l / 3 + !m ();
while (1) {
for (c = 33; c < s; c++) {
c += !((c + 1) % 81);
j = c / s - .5;
h = c % 81 / 40.0 - 1;
p[c] = 37;
for (i = 4; i + 1; i--)
if ((b = (a = h * x
+ j * y + z) * a - (d =
1 + j * j +
h * h) * (-r * r +
x * x +
y * y +
z * z)) > 0) {
for (e = b; e * e > b * 1.01 || e * e < b * .99;
e -= .5 * (e * e - b) / e);
p[c] = k[(int) (8 * e / d / r)];
}
} for (i = 4; i + 1; z -= s / 2, i--)
z = z < 0 ? l * 2 + !m () : z;
while (i < s)
putchar (t[i++] - 5);
}
}
[/php]
谁能解释一下其中的原理? |
|