#include <stdio.h>
#include <stdint.h>
#include <math.h>
float VanDerCorput(uint32_t index, uint32_t base)
{
float result = 0;
float f = 1.0f;
uint32_t i = index;
while (i > 0)
{
f /= static_cast<float>(base);
result += f * (i % base);
i /= base;
}
return result;
}
int main()
{
uint32_t Bitmap[32] = {0};
for (int i=0 ; i<100 ; ++i)
{
uint32_t x = (uint32_t) floorf(VanDerCorput(i, 2) * 32);
uint32_t y = (uint32_t) floorf(VanDerCorput(i, 3) * 32);
Bitmap[x] |= 1<<y;
}
for (uint32_t y=0 ; y<32 ; ++y)
{
for (uint32_t x=0 ; x<32 ; ++x)
{
printf("%c", Bitmap[x] & 1<<y ? '#' : ' ');
}
printf("\n");
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPG1hdGguaD4KCmZsb2F0IFZhbkRlckNvcnB1dCh1aW50MzJfdCBpbmRleCwgdWludDMyX3QgYmFzZSkKewoJZmxvYXQgcmVzdWx0ID0gMDsKCWZsb2F0IGYgPSAxLjBmOwoJdWludDMyX3QgaSA9IGluZGV4OwoJd2hpbGUgKGkgPiAwKQoJewoJCWYgLz0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGJhc2UpOwoJCXJlc3VsdCArPSBmICogKGkgJSBiYXNlKTsKCQlpIC89IGJhc2U7Cgl9CglyZXR1cm4gcmVzdWx0Owp9CgppbnQgbWFpbigpCnsKCXVpbnQzMl90IEJpdG1hcFszMl0gPSB7MH07Cglmb3IgKGludCBpPTAgOyBpPDEwMCA7ICsraSkKCXsKCQl1aW50MzJfdCB4ID0gKHVpbnQzMl90KSBmbG9vcmYoVmFuRGVyQ29ycHV0KGksIDIpICogMzIpOwoJCXVpbnQzMl90IHkgPSAodWludDMyX3QpIGZsb29yZihWYW5EZXJDb3JwdXQoaSwgMykgKiAzMik7CgkJQml0bWFwW3hdIHw9IDE8PHk7Cgl9CgoJZm9yICh1aW50MzJfdCB5PTAgOyB5PDMyIDsgKyt5KQoJewoJCWZvciAodWludDMyX3QgeD0wIDsgeDwzMiA7ICsreCkKCQl7CgkJCXByaW50ZigiJWMiLCBCaXRtYXBbeF0gJiAxPDx5ID8gJyMnIDogJyAnKTsKCQl9CgkJcHJpbnRmKCJcbiIpOwoJfQoKCXJldHVybiAwOwp9