这题解法我是参考http://hi.baidu.com/shyyooeren/blog/item/d74f42104e8ef9f9c2ce7902.html,
只是改了多项式和Fibonacci数列用黄金分割数来求而已(需要改的还有x的范围(a,b))!
#include<stdio.h>
#include
<math.h>
const
int
fi[10]={1,1,2,3,5,8,13,21,34,55}
double
f(double
x)
//多项式
{
return
(x-3)*(x-3)
}
double
F(int
tn)//计算Fibonacci数
{
if(tn<10)
return
fi[tn]
return
pow(1.618,tn-9)*fi[9]
}
void
main(void)
{
double
r,u,a,b,fr,fu,q
int
k,n
//步骤1,初始化
a=0.0
b=3.0
k=0
q=0.00001
n=0
while(F(n)<((b-a)/q))n++
//计算次数n
r=a+(F(n-k-1)/F(n-k+1))*(b-a)
u=a+(F(n-k)/F(n-k+1))*(b-a)
fr=f(r)
fu=f(u)
while(k<n)
{
if(fr>fu)
{
if(b-r<=q)
{
printf("%d:%f",k,u)
break
}
else
{
a=r
b=b
r=u
fr=fu
u=a+(F(n-k)/F(n-k+1))*(b-a)
fu=f(u)
k++
}
}
else
{
if(u-a<=q)
{
printf("%d:%f",k,r)
break
}
else
{
a=a
b=u
u=r
fu=fr
r=a+(F(n-k-1)/F(n-k+1))*(b-a)
fr=f(r)
k++
}
}
}
getchar()
}
20尺集装箱内径:5.89x2.34x2.38(长宽高)40尺集装箱内径:12,03x2.34x2.38
用你的包装箱尺寸,去吻合集装箱的长宽高,一定要小于集装箱的长宽高。即可。
例:
高:1.140x2层=2.28m,小于集装箱的高。
宽:1.080x2排=2.160m,小于集装箱的宽。
长:0.5x11排=5.5m
,
小于集装箱的长。
长宽高都可以保证装进去。
数量:2x2x11=44箱。
提示:40尺集装箱长12.03m,理论装24排,但是实际上在长度方向,一定会涨箱,保证装不进去。(这是实际经验),只能按照23排计算。
40尺可装数量:2x2x23=92箱。
祝你好运!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)