cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 2063|回复: 2

关于if else的进一步优化

[复制链接]
发表于 2010-4-3 09:14:35 | 显示全部楼层 |阅读模式
突破了两条分支只能给同一个变量赋值的局限性,可以同时给三个变量赋值
  1. if(condition){
  2.     x = exp1;
  3. }else{
  4.     y = exp2;
  5. }
复制代码
可以用
Rec(Pol(exp1*condition+x*(not(condition)),exp2*condition+y*not(condition)),Y)
  1. if(condition){
  2.     x = exp1;
  3.     y = exp2;
  4.     a = exp5;
  5. }else{
  6.     x = exp3;
  7.     y = exp4;
  8.     a = exp6;
  9. }
复制代码
可以用
Rec(Pol(exp1*condition+exp3*(not(condition)),exp2*condition+exp4*not(condition)),Y)*0+exp5*condition+exp6*not(condition) → A
此方法实质上是rec、pol组合赋值和乘零法的应用

评分

参与人数 1金钱 +10 收起 理由
991es82es + 10 嗯,不错

查看全部评分

发表于 2010-4-3 09:23:34 | 显示全部楼层
很好,但是很耗(空间)
 楼主| 发表于 2010-4-3 09:55:20 | 显示全部楼层
很耗是因为代码本身很复杂,而不是在转换为es代码过程中变复杂的,这中复杂的代码占用代码空间是不可避免的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-12-22 20:08 , Processed in 0.077360 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表