社区
C#
帖子详情
一个算法题
keystudio
2007-03-19 11:21:45
设有长宽高都为X的立方体一个 ,求 一个小虫在立方体 表面任意位置 爬遍所有立方体的面的最短路径
另谁能给讲讲UML 看了网上几遍文章 没看太懂...
...全文
547
22
打赏
收藏
一个算法题
设有长宽高都为X的立方体一个 ,求 一个小虫在立方体 表面任意位置 爬遍所有立方体的面的最短路径 另谁能给讲讲UML 看了网上几遍文章 没看太懂...
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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经典
算法
90
题
【含源码】"的资源集合为Java初学者提供了
一个
绝佳的学习平台,旨在通过实际操作来理解和应用各种基础及进阶
算法
。下面将详细阐述这些
算法
题
目所涉及的知识点,并建议的学习路径。 首先,"JAVA...
算法
竞赛入门经典(第二版) UVa原
题
PDF版
《
算法
竞赛入门经典(第二版)》是一本深入浅出的
算法
学习书籍,由刘汝佳编著,深受编程竞赛爱好者和计算机科学学生的欢迎...因此,这份PDF习
题
集的本地化版本,无疑为
算法
学习者提供了
一个
更加便捷和高效的练习环境。
[最新答案V0.4版]微软等数据结构+
算法
面试100
题
[第41-60
题
答案]
[第一部分]精选微软等公司数据结构+
算法
经典面试100
题
[1-40
题
] http://download.csdn.net/source/27788523 [第二部分]精选微软等公司结构+
算法
面试100
题
[前41-60
题
]: http://download.csdn.net/source/28117034 ...
75道逻辑思维
题
--会作10道智商就是正常,会作30道就不是凡人,会作60道就是高智商稀有人才
75道逻辑思维
题
--会作10道智商就是正常,会作30道就不是凡人,会作60道就是高智商稀有人才。
给你
一个
算法
应该怎么写程序(数学建模 matlab)
本文写作初衷:有个可爱的学妹问我在看到
一个
算法
编程时的步骤是什么,然而作为伪大神的我,感觉并不知道怎么回答,感觉我编程就俩字死磕,错了咋办?再来一遍!不行咋办?换个写法试试!还不行?百度!不过既然人家...
C#
111,093
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章