请问一个算法(200分)

  • 主题发起人 主题发起人 fs_goat
  • 开始时间 开始时间
F

fs_goat

Unregistered / Unconfirmed
GUEST, unregistred user!
假设有10样材料,用其中的一种或全部组成一种新物质。每种材料用量从0%-100%取值,凡用到的材料只要所占的百分比之和为100%,即算符合条件,能组成新物质。若所有材料的用量百分比都只能取整数(如1%,2%,0%),如何列出所有种可能?
 
数学问题。快忘光了。
 
这个简单:
for a=1 to 100do
for b=1 to 100do
for c=1 to 100do
......
if a+b+c+.....=100 then
memo1.lines.add(inttostr(a)+inttostr(b)+inttostr(c)+...
....
end;
 
楼主,按你的意思,那不就是随意组合都有可能呀!那可多了,
而且,如果按楼上的去穷举,有101^10次,电脑不崩溃才怪!!!!
试试用组合+穷举,看能否找到规律,不然会死掉的
 
诚如helium-he所说,光穷举工作亮太大,还有更好的法子吗?实在不行,我用分段穷举,同时在几台电脑上跑算了.有什么好建议吗,各位.
 
这个应该不算太难,拿weiliu的程序做剪枝:
for a=0 to 100do
for b=0 to 100-ado
for c=0 to 100-a-bdo
......
{
j=100-a-b-c-d-e-f-...
memo1.lines.add(inttostr(a)+inttostr(b)+inttostr(c)+...
}
....
 
这个程序是按下限0%算的,如果下限为1%可稍作修改。
 
接受答案了,谢谢各位.
 
后退
顶部