程序编写中易错的case

1. A严格依赖于B,但是B之后又改变了,这时候再用A,就会出现一些意想不到的错误。。。比如数组越界等,所以一点要确保中间B没有任何变化。

#找  万  所在的位置
index_of_wan = money.find('万')
#将money截取
money = money[money.find('亿'):]
#注意这个时候money已经改变了导致index_of_wan已经失效
money[index_of_wan]!='万'

2. 当循环中出现可变容器时,在循环过程中会改变容器的size,要注意。。

PriorityQueue<>pq;
for(int i=0;i<pq.size();i++){
   pq.poll();   //因为弹出而改变了容器的size,就会出错
}

//最好遍历
while(!pq.isempty()){
   dosomething();
}

3. 当后面的计算依赖于某一项时,要保证该项在中途是否会变化,且该变化是否是应该的。。。

int []days={2,3,4,5,6,7,8};
// 将该数组均减去首位+1,即-days[0]+1,左平移,变成以1开始的数组

for(int i=0;i<days.length;i++)
   days[i]=days[i]-days[0]+1;
// 注意这里得到的结果不是我们想要的
// 因为首项一开始就变成了1.。后面减去的都是1了

//正确的方式--1
for(int i=days.length-1;i>=0;i--)
    days[i]=days[i]-days[0];

//或者--2
t = days[0]
for(int i=0;i<days.length;i++)
   days[i]=days[i]-days[0]+1;

//或者--3
for(int i=1;i<days.length;i++)
   days[i]=days[i]-days[0]+1;
days[0]=1;


感觉最好的应该是第二种,直接暴露了易错点,而写法1则比较隐晦地避免易错点

int[]dp={1,2,3,4,5};
public int dp(int x){
    for(int i=0;i<3;i++)
       memo[x]=Math.max(memo[i],....)
 }

//应该是
momo[x]=Math.max(memo[x],...)

//作为沙雕,我已经在这个上面犯了好几次错误

 

需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕需求响应动态冰蓄冷系统及其优化策略展开研究,结合Matlab代码实现,探讨了在电力需求侧管理背景下,冰蓄冷系统如何通过优化运行策略参与需求响应,以实现削峰填谷、降低用电成本和提升能源利用效率的目标。研究内容包括系统建模、负荷预测、优化算法设计(如智能优化算法)以及多场景仿真验证,重点分析不同需求响应机制下系统的经济性和运行特性,并通过Matlab编程实现模型求解与结果可视化,为实际工程应用提供理论支持和技术路径。; 适合人群:具备一定电力系统、能源工程或自动化背景的研究生、科研人员及从事综合能源系统优化工作的工程师;熟悉Matlab编程且对需求响应、储能优化等领域感兴趣的技术人员。; 使用场景及目标:①用于高校科研中关于冰蓄冷系统与需求响应协同优化的课题研究;②支撑企业开展楼宇能源管理系统、智慧园区调度平台的设计与仿真;③为政策制定者评估需求响应措施的有效性提供量化分析工具。; 阅读建议:建议读者结合文中Matlab代码逐段理解模型构建与算法实现过程,重点关注目标函数设定、约束条件处理及优化结果分析部分,同时可拓展应用其他智能算法进行对比实验,加深对系统优化机制的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值