#include <stdio.h>
#include <time.h>
#define MAX 447
#define STEP (14.0 / 0x100000)
#define DN 16
int main()
{
int x, y, n, sx, sy, sn, h = 0, t;
double zx, zy, cx, cy, xx, yy;
for (y = 0; y < 384; y++) {
for (x = 0; x < 512; x++) {
if (y >= 137) {
n = 447;
if (x * 154 + 57600 < (y << 8)) goto n447;
t = x - 245; xx = t * t; t = y - 314; yy = t * t; if (xx + yy < 2400) goto n447;
t = x - 3; xx = t * t; t = y - 178; yy = t * t; if (xx + yy < 1700) goto n447;
}
sn = 0;
for (sx = 0; sx < DN; sx++) {
cx = (double) 0x4750 / 0x10000 + (x * DN + sx) * (STEP / DN);
for (sy = 0; sy < DN; sy++) {
cy = (double) 0x1e8 / 0x10000 + (y * DN + sy) * (STEP / DN);
zx = zy = 0;
for (n = 0; n < MAX; n++) {
xx = zx * zx;
yy = zy * zy;
if (xx + yy > 4) break;
zy = zx * zy * 2 - cy;
zx = xx - yy + cx;
}
sn += n;
}
}
// n = sn / (DN * DN);
n = sn >> 8;
n447:
h += n; // 表示の代わりに集計
}
}
printf("%d\n", h);
printf("(%.3f[sec])\n", clock() / (double) CLOCKS_PER_SEC);
return 0;
}#include <stdio.h>
#include <time.h>
#define MAX 447
#define DN 16
int main()
{
long long x, y, sx, sy, zx, zy, cx, cy, xx, yy, t;
int n, sn, h = 0;
for (y = 0; y < 384; y++) {
for (x = 0; x < 512; x++) {
if (y >= 137) {
n = 447;
if (x * 154 + 57600 < (y << 8)) goto n447;
t = x - 245; xx = t * t; t = y - 314; yy = t * t; if (xx + yy < 2400) goto n447;
t = x - 3; xx = t * t; t = y - 178; yy = t * t; if (xx + yy < 1700) goto n447;
}
sn = 0;
for (sx = 0; sx < DN; sx++) {
cx = (x * 16 + sx) * 14 + 4673536;
for (sy = 0; sy < DN; sy++) {
cy = (y * 16 + sy) * 14 + 124928;
zx = zy = 0;
for (n = 0; n < MAX; n++) {
xx = (zx * zx) >> 24;
yy = (zy * zy) >> 24;
if (xx + yy > 0x4000000) break;
zy = (zx * zy) >> 23;
zx = xx - yy + cx;
zy = zy - cy;
}
sn += n;
}
}
// n = sn / (DN * DN);
n = sn >> 8;
n447:
h += n; // 表示の代わりに集計
}
}
printf("%d\n", h);
printf("(%.3f[sec])\n", clock() / (double) CLOCKS_PER_SEC);
return 0;
}| コメント | お名前 | NameLink | |