我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 最大值问题——顶着工科智商的头颅们进 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

qidann



性别: 帅哥 状态: 该用户目前不在线
头衔: 菠菜烧股且为乐 浮云散尽还复来
等级: 人见人爱
家族: 起早不摸黑
发贴: 4546
威望: 0
浮云: 1998
在线等级:
注册时间: 2006-05-09
最后登陆: 2011-03-01

5come5帮你背单词 [ daughter /'do:tə/ n. 女儿 ]


最大值问题——顶着工科智商的头颅们进

这是一个《三国志11》里建市场的问题
现在有一快地盘
共9个格子  位置如图所示
在每个个子里可以建一个建筑  现在我只考虑建市场和造币厂
市场会在一定时间内提供一定数目的资金 造币厂可以使接壤市场的效果变为原来的1.5倍


比如 我在6号位放一个造币厂,在3、4、5、7、8、9、位上放市场
则相当于有1.5*6=9个市场

但是如果我在6号位上放一个市场,在3、4、5、7、8、9、位上放造币厂
则相当于有1.5^6=11.39      [11.39]=11个市场


现在我把9个格子要放满
如何分配造币厂和市场的位置 使这块地的资金产量最高?
远程图片:未命名-1.jpg
顶端 Posted: 2007-07-27 18:45 | [楼 主]
tj.g



年度之星奖 特殊贡献奖 社区建设奖
性别: 帅哥 状态: 该用户目前不在线
头衔: 明媚的忧伤。。
等级: 幕后精英
家族: 水族馆
发贴: 19483
威望: 13
浮云: 318
在线等级:
注册时间: 2005-10-01
最后登陆: 2022-10-12

5come5帮你背单词 [ living /'liviŋ/ a. 活着的,现存的;n. 生计,生活 ]


遍历比较合适
顶端 Posted: 2007-07-27 19:12 | [1 楼]
tj.g



年度之星奖 特殊贡献奖 社区建设奖
性别: 帅哥 状态: 该用户目前不在线
头衔: 明媚的忧伤。。
等级: 幕后精英
家族: 水族馆
发贴: 19483
威望: 13
浮云: 318
在线等级:
注册时间: 2005-10-01
最后登陆: 2022-10-12

5come5帮你背单词 [ communicate /kə'mju:nikeit/ vt. 交际,交流(思想等),传达,传送,通讯,通信 ]


Quote:
引用第8楼zjc于2007-07-28 12:01发表的  :
我觉用贪婪法可解决问题

恩。。我一向用比较笨的算法

PS.这里是求最优解,不是合适解,贪婪法不太合适
顶端 Posted: 2007-07-28 12:52 | [2 楼]
tj.g



年度之星奖 特殊贡献奖 社区建设奖
性别: 帅哥 状态: 该用户目前不在线
头衔: 明媚的忧伤。。
等级: 幕后精英
家族: 水族馆
发贴: 19483
威望: 13
浮云: 318
在线等级:
注册时间: 2005-10-01
最后登陆: 2022-10-12

5come5帮你背单词 [ young /jΛŋ/ a. 年轻的,青年的;n. 年轻人 ]


Quote:
引用第0楼qidann于2007-07-27 18:45发表的 最大值问题——顶着工科智商的头颅们进 :
这是一个《三国志11》里建市场的问题
现在有一快地盘
共9个格子  位置如图所示
在每个个子里可以建一个建筑  现在我只考虑建市场和造币厂
市场会在一定时间内提供一定数目的资金 造币厂可以使接壤市场的效果变为原来的1.5倍
.......

如果一个市场附近有两个厂怎么办?

用C写了个基本思路,没有调试和完成,特别是计算结果那边还有点问题
Quote:

#include "ccbp.h"
///
///比较各种排列方式计算结果
///
sum(int temp[],int relation[],int result[]){
    int i,j,sum=0;
    for(i=1;i<=9;i++){                               
        for(j=1;j<=9;j++){
            if(temp是厂&& 没有计算过){
                if(temp[j]是场 && relation[j]==1&& 没有计算过 ){
                    sum+=1.5;
                }else if(temp[j]是场 && relation[j]==0 && 没有计算过){
                    sum+=1;
                }
            }else if( 没有计算过){
                sum+=1;
            }
        }
    }
    if(sum > result[0]){    //赋值方便输出
        result[0]=sum;
        for(j=1;j<=9;j++){
            result[j]=temp[j];       
        }
    }        
    if(sum == result[0]) result[10]+=1;
}



funtion(int i,int temp[],int relation[],int result[]){  ///递归求排列情况
    int j;
    if(i==10) {  ///递归10次,生成了排列情况,则可求解
        sum(temp,relation,result) /* 求解 */
        return;
    }
    temp= 0;
        funtion(i+1,temp,relation,result);
    temp= 1;
        funtion(i+1,temp,relation,result);
}

main(){
    int relation[][]={, , , , , , , , , } ///输入是否相邻关系,分9组,每组9个
    int temp[10]={0};    /// 存放当前排列的情况 /
    int result[11]={0};    /// 0的位置记录已得结果的最大值,1-9记录排列情况,10记录同值有多少种
    clrscr();
    funtion(1,temp,relation,result);  ///输出
    for(j=0;j<=10;j++){
        printf("%d  ",result[j]);       
    }
}




[ 此贴被tj.g在2007-07-28 15:05重新编辑 ]
顶端 Posted: 2007-07-28 14:49 | [3 楼]
我来我网·5come5 Forum » 智力考场

Total 0.012816(s) query 6, Time now is:06-08 00:31, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号