木棍算法
‘壹’ 木棍长12米,锯了5次,平均每段长多少米用二年级的算法.
锯了五次,有5+1=6段 12=2+2+2+2+2+2 正好6段 每段两米
‘贰’ 有7根直径都是10cm的圆柱形木棍,想用绳子把它们捆成一捆,最短需要多长的绳子
先6个圆柱围成一圈,计算中间的圆的半径,要判断能不能放置下第七个圆,若六个圆的内接圆半径大于等于5,则能放置,否者六个圆并不是相邻的,即相邻圆圆心与原点的夹角大于60度。
计算的图中的内接圆半径恰好是5,过程略。
然后计算外接圆的半径是15
图中所有的圆相切。
外接圆周长是30pai
‘叁’ 左边有10根一样长的木棍,右边有3根一样长的木棍,要写岀三种算法,应该怎么做。
⑴原来有10根,又拿来3根,共多少根?
⑵拿走3根,还剩10根,原来多少根?
⑶原来有13根,拿走3跟根,剩多少根?
⑷ 原来有13根,拿走一些,还剩10根,拿走多少根?
‘肆’ 树木的方数怎么算
树的方数的计算方法:
1、测量树干的材积(方数),可根据所测定的立木胸径(树高 1.3米处的树干直径)、树高或原木的小头直径、材长分别查相应的立木或原木材积表即得。
2、板方材按实测长、宽、厚相乘或查板方材积表而得。
4、单株立木材积的测定方法:胸高形数法: V=g1.3Hf1.3,式中V为树干材积;g1.3为胸高断面积;H为树高; f1.3为胸高形数,形数一般是根据大量伐倒木的实测数据取得,经过数理统计整理,求得实验回归式,编制出不同树种各直径和树高的形数表,在计算材积时查用。
5、 薪炭材材积的测定方法:一般不用单根检尺的方法测定材积,而把它们截成一定长度后堆放成垛,根据所占空间计算一垛的材积,按垛的长、宽、高所计算的空间体积称层积材积,扣除材间空隙而求得的木材体积称实积材积,层积材积可通过换算系数计算出实积材积。换算系数的大小与材积的直径、弯曲和枝节有关。
6、相片网点测定法:将所要测定的木材垛横断面拍成相片,覆盖网点板。统计木材断面上所落点数与总点数的比例,即为实积系数。
7、对角线比例测定法:在材垛的正面划一个与垛高相等的长方形,在长方形两对角线各牵一皮尺,沿皮尺在各木材头上用粉笔划一条线,量测材头截线的总长度与对角线长度之比即为实积系数。
(4)木棍算法扩展阅读:
测量树木高度的方法:
1、取一木棍,直立于地面,分别测出树和棍的影长,再测出棍长。按比例可测树高。
2、在树的附近找一棵较矮的对比树,测出对比树的高,人与树,对比树站在同一条直线上,当两树树尖重合时,测出人所在的位置与对比树的位置的距离,再测两树间距离,按比例可测数高。
3 、取一大的直角等腰三角板,立放在地面,观测者匍匐于地面,通过斜边观察数,当正好观测到树尖时,测出三角板与树的距离,此距离即为树高。
‘伍’ 小木棍36 7的分解算法怎么圈
摘要 把36分解为20+16
‘陆’ 算法艺术与信息学竞赛中小木棍的解析
很遗憾 虽然我手边书架正好有这么一本书 但是我发觉水平实在有限 帮不了你啊 反正我就晕了 连程序1 程序2在哪我都看不出来 实在抱歉呐~!
____________________________________以上是原文————
接下来 我细细地想了一下 我的思路是这样的
如果本题目不是求的最小可能长度 ,而是要求一个原长度的话 就好解决了 木棍本来就由长棍折成的 总和肯定匹配 因此 我最初的想法是直接使用2路归并算法 两两相邻的相加
最后 我发现这个思路正好相反 对照书上的意思是
先取最长的小棍 然后与最短小棍组合
将迭代传给第二长小棍 若其与剩下小棍长度之和与第一组相等 则继续迭代
若不相等则返回上一步迭代
这就是作者所说的深度优先搜索吧 这样确实能够取得最小的长棍长度
_____________________以下是对解释的补充—————————————
本来,像这种使用队列来存储的算法 怎么说都会认为是广度优先算法
地球人都知道
不过 这个题目并没有说是将每一条棍子都砍成两段,而是折成几段
这就意味着 仅仅进行上面的 两轮迭代是不够的
当第一段最长的那段从队列出来之后 也就是在两段的层次上不能匹配的时候
它会入栈 进行更多段的匹配
而只有在外面套上这么一层的迭代 才真正是深度优先算法
当然了,作者给的提示是 以最短小棍为起点 用长段来匹配 而我现在是以最长棍为起点 用短棍来匹配 是有点小小的不同 但我个人认为 过程是一样的
这个问题 真可恶 害我晚上睡不好觉 睡了下 还得爬起来
‘柒’ 长8米的木棍据成4段,每锯一次需要4分钟,共需要12分钟。算法公式是什么
长8米的木棍锯成4段,每锯一次需要4分钟,共需要12分钟。
算法公式是,
(4-1)*4
=3*4
=12(分钟)
‘捌’ C语言木棍问题
分析:先将顺序串的存储结构定义修改如下:
typedef struct{
char ch[2][MaxStrSize];
int length;
}SeqString;
不妨设ch的第0行存放原字母表,第1行存放映射表.具体算法如下:
(1)void Encoding(char *S,SeqString T){
//设串S中存放待加密的文本,T中存放字母表及映射表
int i,j;
int m=T.length; //字母表长
int n=strlen(S); //字符串长
for(i=0;i<n;i++){ //扫描文本串
for(j=0;i<m;j++) //扫描字母表
if(S[i]==T.ch[0][j]){
printf("%c",T.ch[1][j]); //加密输出
break; //跳出内循环
}
if(j==m)Error("%c is not in alphabet",s[i]);
}
}
(2)void DeCoding(char *S, SeqString T){ //S为待解密串
int i,j;
int m=T.length; //字母表长
int n=strlen(S); //字符串长
for(i=0;i<n;i++){ //扫描文本串
for(j=0;i<m;j++) //扫描字母表
if(S[i]==T.ch[1][j]){
printf("%c",T.ch[0][j]); //加密输出
break; //跳出内循环
}
if(j==m)Error("%c is not in alphabet",s[i]);
}
}
上述两算法的时间复杂度均为O(m*n).
希望对你有帮助