[Math] Find, inside a large circle, the maximum number of small circles placed 60 degrees to each other and

circlespacking-problem

… starts with a small circle in the center of the large circle.

enter image description here

The above picture shows a program I wrote to actually draw the circles out. But you can see that this method does not yield maximum number of blue circles. There are still spaces around the red circle.

The method i used is to draw blue circle "rings" starting from the center outwards. i.e move out in the blue arrow direction for one circle diameter, then go around in the red arrow direction, then repeat next ring in the blue arrow direction.

Anyone can share a smarter method? Thank you all. I need only to calculate the number, but if there is a systematic way to draw will be better.

Best Answer

If your goal is to make a program, then considering you already have that done, it seems like the easiest strategy would just be to: 1. Add on more rings until you know that every circle in a new ring will be outside the main circle. 2. Iterate through the small circles, removing all of the circles who's centers are further than R-r from the main circle, where R and r are the radii of the large and small circles respectively.

That however assumes that you can't fit more circles in by translating your entire set of small circles to the side a bit more. If you want to make sure you have the maximum, you might have to do some more fudging.