1
在圆形交叉点中查找专用区域
这是给您一个看似具有挑战性的几何难题! 给定一个圆A和n其他圆B[n],找出包含在A其中的总面积不在的任何圆之内B。 您的代码应尽可能短。 输入项 您的输入应包含以下信息: 一个浮点数,表示圆的半径A。 浮点数列表,用于表示中的圆半径B。 中的圆心列表B。您的程序可能期望中心在极坐标或笛卡尔坐标中。 (可选)您可能会收到nB中的圆圈数。此输入不是必需的。 假定圆心A是原点,即点(0, 0)。 这是保证没有两个圈子里B是相同的,但不保证:1,各界B相交A,各中心B在外面A,或没有两个圆B相交。确保您的解决方案可以处理各种边缘情况。 您可以以任何顺序接收输入,包括文本输入(通过stdin或您的语言的等效语言),函数参数或命令行参数的形式。 如果选择接收文本输入,则输入之间应有一个或两个字符的可打印ASCII分隔符。 输出量 您的程序或函数应输出一个浮点数,该数字代表A不在的任何圆圈内的总面积B。对于所有测试用例,您的答案应至少精确到三个有效数字。 通用代码高尔夫球规则适用。 您的解决方案不应依赖圆内的采样点来确定面积。 不允许使用自动定位圆的交点,在圆的交点内查找区域或立即解决此问题的内置函数。 测试用例 在每个图像中,圆圈A以蓝色勾勒出轮廓,圆圈B以绿色勾勒出黑色轮廓。应返回的区域以红色填充。 (特别感谢Rainer P.检查我的解决方案) 测试用例1: A = {x: 0, y: 0, rad: 50} B[0] = {x: 0, y: 0, rad: 100} Result: 0.00 测试案例2: A = {x: 0, y: 0, rad: …