社区
C#
帖子详情
一个算法题
keystudio
2007-03-19 11:21:45
设有长宽高都为X的立方体一个 ,求 一个小虫在立方体 表面任意位置 爬遍所有立方体的面的最短路径
另谁能给讲讲UML 看了网上几遍文章 没看太懂...
...全文
550
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...
[最新答案V0.4版]微软等数据结构+
算法
面试100
题
[第41-60
题
答案]
[第一部分]精选微软等公司数据结构+
算法
经典面试100
题
[1-40
题
] http://download.csdn.net/source/27788523 [第二部分]精选微软等公司结构+
算法
面试100
题
[前41-60
题
]: http://download.csdn.net/source/28117034 ...
2013年IT面试之百度笔试面试大礼包
总体而言,2013年百度笔试面试大礼包为IT求职者提供了丰富、详细的知识点,从公司背景到具体面试
题
目,从
算法
题
到系统设计,都为求职者提供了宝贵的准备资料。同时,这也为面试者提供了
一个
难得的机会,去了解和准备...
75道逻辑思维
题
--会作10道智商就是正常,会作30道就不是凡人,会作60道就是高智商稀有人才
75道逻辑思维
题
--会作10道智商就是正常,会作30道就不是凡人,会作60道就是高智商稀有人才。
java
算法
大全_java经典
算法
_
算法
面试
题
大全含答案
4、java递归
算法
练习:使用递归
算法
写个程序计算n! 5、JVM的常见垃圾回收
算法
6、《java
算法
大全》第一期 7、《java
算法
大全》第三期 8、《java
算法
大全》第二期 9、《java
算法
大全》第五期 10、《java
算法
大全》第...
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章