| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 324 人关注过本帖
标题:9。11水晶宫问题
只看楼主 加入收藏
coding
Rank: 1
等 级:新手上路
威 望:1
帖 子:60
专家分:0
注 册:2007-9-30
收藏
 问题点数:0 回复次数:0 
9。11水晶宫问题
昨天,有位同志提了,9.11事件的水晶宫问题。刚才搜了一下,没有找到这位同志,但我把程序写在这儿,我用的是MATLAB,主要是考虑到速度问题。
function search()
stock=[stock1 stock2 stock3 ... stock100] %每个水晶块的重要
sum=0;
n=input('en:');
flag=1;
for i=1:100
bit[i]=0;
sum=sum+stock(i);
end
for num=1:2^n-2 %不要怕,考虑到对称,补码,可以大大减少的
bit=stockbit(num);
flag=1;
for numbit=1:100
if bit(numbit)==1
sum1=sum1+stock(numbit);
key(flag)=numbit;
flag=flag+1;
end
end
if sum1*2=sum &成功以后就输出,并退出
disp('success');
key
sum1
break;
end
end

function [bit]=stockbit(num) %计算二进制的形式
n=num;
flag=1;
for i=1:100
bit(i)=0;
end

while n~=0
r=mod(n,2);
bit(flag)=r;
flag=flag+1;
n=(n-r)/2;
end




搜索更多相关主题的帖子: 水晶宫 
2007-10-02 13:57
快速回复:9。11水晶宫问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018060 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved