Not really a riddle but for those who know or find out, do not post the solution!
Here we go
Imagine you have 3 points that form an equilateral triangle.

Point A, B and C.
1. Start anywhere X,Y, leave a dot
2. Randomly select one of the three points. (A, B or C)
3. Move halfway between wherever you are and that point and leave a dot.
4. Then randomly select one of the three points again.
5. Move halfway between your current position and that point and leave another dot.
6. Repeat steps 4 and 5 at least 10,000 times
What is the shape that you get?
Try to visualize it internally
If you already know what this is, don't say anything please:) example code snippet solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Random r = new Random(); Point[] xy = new Point[10000]; Point[] triP = { new Point(50, 450), new Point(300, 10), new Point(550, 450) };
public void init() { xy[0] = new Point(r.nextInt(800), r.nextInt(800)); for (int i = 1; i < xy.length; i++) { int pickPoint = r.nextInt(3); xy[i] = new Point(Math.abs((xy[i - 1].x + triP[pickPoint].x) / 2), Math.abs((xy[i - 1].y + triP[pickPoint].y) / 2)); } } public void render(Graphics g) { for (int i = 0; i < xy.length; i++) { g.drawLine(xy[i].x, xy[i].y, xy[i].x, xy[i].y); } } |
Edit: If you run the code, mangle it around to utilize different shapes(square, octagon, etc..) and try to create new things and see their results. Some are expected, some are not.