首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

csdn的高手有哪位高手能解决这个有关问题

2012-03-31 
csdn的高手有谁能解决这个问题csdn的高手有谁能解决这个问题给出任意两个数,按8:4或4:8或6:6进行拆分,每一

csdn的高手有谁能解决这个问题
csdn的高手有谁能解决这个问题

给出任意两个数,按8:4或4:8或6:6进行拆分,每一个比例为1局,问怎样拆分才能拆分出最大局数.
如:90:54这两个数,可以拆分出(9个8:4,3个6:6   最大共拆分出12局).
再如:11:14   两个数,可以拆分出(1个4:8,1个6:6   最大共拆分出2局).
再如:1:12   两个数,最大局数为0局.
再如:4:80   两个数,最大局数为1局(1个4:8).
以下方式可以解决.但是速度太慢.
m代表第一个数,n代表第二个数.
8x   +   4y   +   6z   =   m
4x   +   8y   +   6z   =   n
然后用三层for循环进行求解


[解决办法]
4(y-x)=n-m
y-x = (n-m)/4
y=x+(n-m)/4
12x+6z = 2m-n
z=(2m-n)/6-2x
y=(n-m)/4+x
So for all x that (2m-n)/6> =2x, (n-m)/4+x> =0 find the maximal value of
x+y+z = (n-m)/4+(2m-n)/6
the result is independent of x.
So that when both (n-m)/4 and (2m-n)/6 are integer.
for any x that 0 <=x <=(2m-n)/12 &&x> =(m-n)/4
x+y+z could reach the maximal value (n-m)/4+(2m-n)/6
here n=54, m=90
(n-m)/4=-9
(2m-n)/6=21
For any x,9/4 <=x <=10.5, (that x=3,4,5,6,7,8,9,10)
y=x-9
z=21-2x
the value of x+y+z is 12.


[解决办法]
8x + 4y + 6z = m
4x + 8y + 6z = n
方程组将x看作常数解得:
z=(2m-n)/6-2x
y=(n-m)/4+x
由于z,y≥0所以有:
(2m-n)/12 ≤ x ≤ -(n-m)/4
代入m,n后用x进行for循环,解得z,y

热点排行