社区
C#
帖子详情
一个算法题
keystudio
2007-03-19 11:21:45
设有长宽高都为X的立方体一个 ,求 一个小虫在立方体 表面任意位置 爬遍所有立方体的面的最短路径
另谁能给讲讲UML 看了网上几遍文章 没看太懂...
...全文
543
22
打赏
收藏
一个算法题
设有长宽高都为X的立方体一个 ,求 一个小虫在立方体 表面任意位置 爬遍所有立方体的面的最短路径 另谁能给讲讲UML 看了网上几遍文章 没看太懂...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Red_angelX
2007-03-20
打赏
举报
回复
顶一下
chinnel
2007-03-19
打赏
举报
回复
我的想法跟樓上一樣,並且正在實現.
不過覺得danjiewu(阿丹)的做法應該不是最短.
gwl1984
2007-03-19
打赏
举报
回复
把问题转化一下:把立方体展开成平面,然后画一条线,使得这条线通过所有的面和虫所在的点,且这条线最短.就像环球旅行一样.
danjiewu
2007-03-19
打赏
举报
回复
我猜是(sqrt(2)*2 + 1) * X + 小虫到任一个顶点的最短距离。
keystudio
2007-03-19
打赏
举报
回复
对算法题都没兴趣啊..........
fj4408
2007-03-19
打赏
举报
回复
顶下!
shoutor
2007-03-19
打赏
举报
回复
顶一下
keystudio
2007-03-19
打赏
举报
回复
顶~~~~~~~
chinnel
2007-03-19
打赏
举报
回复
winForm 下面可以立即試下:
private void Form1_Load(object sender, System.EventArgs e){
this.label1.Text = GetDistance(10,new Point(1,4),1).ToString();
//or this.label1.Text = GetDistance(30,new Point(5,14),1).ToString();
}
chinnel
2007-03-19
打赏
举报
回复
/// <summary>
/// 設邊長為bLength的立方體,求一個小蟲在立方體表面任意位置(Point),爬遍立方體所有面的最短路徑(Result).
/// </summary>
/// <param name="bLength">正方體的邊長</param>
/// <param name="p">Point position</param>
/// <param name="minLength">最小臨界位</param>
/// <returns>Result</returns>
public virtual double GetDistance(int bLength,Point p, int minLength)
{
if(bLength < 3)
{
return 0;
}
double middleNum = ((double)bLength)/2;
int pX = p.X;
int pY = p.Y;
int sideA = 0;
int sideB = 0;
int overPst = bLength - minLength;
double result = 0;
if(pX <= middleNum)
{
if(pY <= middleNum)
{
sideA = pY;
sideB = pX + overPst;
}
else
{
sideA = pX;
sideB = (bLength - pY) + overPst;
}
}
else
{
if(pY <= middleNum)
{
sideA = bLength - pX;
sideB = pY + overPst;
}
else
{
sideA = bLength - pY;
sideB = (bLength - pX) + overPst;
}
}
result = Math.Sqrt(sideA * sideA + sideB * sideB) + overPst*Math.Sqrt(2) + 2*(minLength*Math.Sqrt(2)) + minLength;
return result;
}
/*解釋,設小蟲所在的位置面為立方體的頂面,小蟲經由最近的邊 爬向離自己最近的(底面頂點跨面偏移宜一個臨界位);
* 經由底面,爬向最遠的一個頂點跨面偏移宜一個臨界位. 再加上最後一個面的臨界位.
* 如果忽略臨界位,那結果應該是 小蟲到最近顶点的距离 加 两个不可能在同一平面的顶点 之间的最短距离*/
honkerhero
2007-03-19
打赏
举报
回复
重在走,线要是连贯的吧
honkerhero
2007-03-19
打赏
举报
回复
展开是个什么形状,不规则形状,期待算法,帮顶
王集鹄
2007-03-19
打赏
举报
回复
如果
小强爬到边上是不是经过两个面?
小强爬到顶点上是不是经过三个面?
输出格式是啥?
有没有输入、输出范例?
shrinerain
2007-03-19
打赏
举报
回复
哦,对,不是1+Sqrt(2)...
我错了。。。
danjiewu
2007-03-19
打赏
举报
回复
确实是Sqrt(5)。
chinnel
2007-03-19
打赏
举报
回复
如果小蟲有最小單位呢?
比如小蟲的最小單位為1,那麼就是說它不可能站在一個 x=0,y=0,z=0 的頂點位置呢?
wzq6511
2007-03-19
打赏
举报
回复
应该到最近的顶点的距离加两个顶点之间的最短距离
keystudio
2007-03-19
打赏
举报
回复
顶~~~~~~~
keystudio
2007-03-19
打赏
举报
回复
我的思路跟楼上差不多 不过我觉得是不是 两个顶点和虫的位置 3个点连线最短的就可以了
一共8个顶点 4组对应顶点 分别连线比较?
不知道还有没有更短的
另外uml没人愿意说说吗
ruan_hg
2007-03-19
打赏
举报
回复
走到对顶点的距离并不是(1+Sqrt(2),而是Sqrt(5)!
高中立体几何中学过,确如gwl1984()所言,“ 把立方体展开成平面”
加载更多回复(2)
JAVA经典
算法
90
题
【含源码】
Java最经典的
算法
题
,初学者必懂。好好学,好好练,这就是学习的最终的秘诀
[最新答案V0.4版]微软等数据结构+
算法
面试100
题
[第41-60
题
答案]
[第一部分]精选微软等公司数据结构+
算法
经典面试100
题
[1-40
题
] http://download.csdn.net/source/27788523 [第二部分]精选微软等公司结构+
算法
面试100
题
[前41-60
题
]: http://download.csdn.net/source/28117034 ...
大厂
算法
面试真
题
解析
我把它叫做 面试最后一公里 -
算法
和数据结构 这门课使用现在各个大厂的面试真
题
来讲解,告诉你 1.
算法
面试应该怎么思考 2.
算法
面试怎么回答才最完美 3. 如何高效的准备
算法
面试 4. 面试前不可不看的课程 还等什么...
微软等数据结构+
算法
面试100
题
全部答案集锦
一年之前的10月14日,
一个
名叫July 的人在
一个
叫csdn 的论坛上开帖分享微软等公司数据结构+
算法
面试100
题
,自此,与上千网友一起做,一起思考,一起解答这些面试
题
目,最终成就了
一个
名为:结构之法
算法
之道的编程...
[珍藏版]微软等数据结构+
算法
面试100
题
全部出炉[100
题
V0.1最终完美版]
2个月,因为要整理这100
题
,很多很多其它的事都被我强迫性的搁置一旁, 如今,要好好专心去做因这100
题
而被耽误的、其它的事了。 这微软等数据结构+
算法
面试100
题
系列(
题
目+答案),到底现在、或此刻、或未来, 对...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章