Самый простой (не обязательно самый быстрый или "лучший") способ написания кода - найти ограничивающий прямоугольник, содержащий все круги, а затем использовать числовой стохастический метод для интегрирования.
Теперь, будучи умным, вы, вероятно, можете группировать круги и ставить их отдельно, то есть работать в нескольких ограничивающих прямоугольниках. И даже обрабатывать определенные особые случаи точно.
Но чистый стохастический метод имеет красоту простоты реализации (но потенциально медленного).
Это приемлемо только в том случае, если вы рады получить «приблизительный» (но сколь угодно близкий к правильному) ответ.