找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 2564|回复: 6

球面上的小球排列问题

[复制链接]
发表于 2022-10-20 11:23:11 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
假设有半径 n 的大球,n 是正整数,和半径 1 的小球,
问大球表面最多可以放多少小球
(指大球和小球都是刚体,每个小球和大球都接触)

假设M(n)是半径 n 的大球表面最多可以放置的小球数量,
针对 n = 1..10 计算 M(n)
回复

使用道具 举报

发表于 2022-10-20 17:29:13 | 显示全部楼层
这是几何题
回复 赞! 靠!

使用道具 举报

发表于 2022-10-20 18:39:59 | 显示全部楼层
粗略计算,先求出大球的表面积,然后按每个小球占用的面积为一个边长 2 的等边三角形面积来算,用大球表面积去除以等边三角形的面积,向下取整,即可估算。
但目测实际能放下的球数量比这个数值小一点。大球越大,计算结果可能越接近于正解。

daqiu.PNG

daqiuxiaoqiu.PNG
回复 赞! 靠!

使用道具 举报

发表于 2022-10-20 18:52:42 | 显示全部楼层
本帖最后由 usr 于 2022-10-20 19:15 编辑

试试这个:

  1. #include <stdio.h>
  2. #include <math.h>

  3. #define PI (3.14159292653f)

  4. int M(int n)
  5. {
  6.         return floor(PI * (n + 1) * (n + 1));
  7. }

  8. void main()
  9. {
  10.         int n;
  11.         scanf("%d", &n);
  12.         printf("%d\n", M(n));
  13. }
复制代码

[4*pi*(n+1)^2]/4
Untitled.png
回复 赞! 靠!

使用道具 举报

发表于 2022-10-22 11:30:14 | 显示全部楼层
小球不可以错开放吗?  2个小球的结合部 镶进去一个小球?
也许更多我没算 大神算算
回复 赞! 靠!

使用道具 举报

发表于 2022-11-2 03:44:34 | 显示全部楼层
0xAA55 发表于 2022-10-20 18:39
粗略计算,先求出大球的表面积,然后按每个小球占用的面积为一个边长 2 的等边三角形面积来算,用大球表面 ...

小球球心共球面,要求这个共球面的面积才行
回复 赞! 靠!

使用道具 举报

发表于 2022-11-2 03:58:38 | 显示全部楼层
本帖最后由 Ayala 于 2022-11-2 04:10 编辑

先计算小球球心共球面面积                S0 =  4*(大球半径+小球半径)^ 2 * PI
计算3球球心等边弧面面积约度(三角形)        S1 = 小球半径 * 小球半径 * sqrt(3)    ;实际面积比这个大,具体数值需要去积分
计算容纳约数                        n  = 向上取整((S0 - S1)/ S1)* 3 + 1              ;约度计算,先排除一个容纳三球的空间,这个3球空间可以容纳一个球

回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-9-8 11:30 , Processed in 0.036988 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表