返回信息流如题,最好能举例说明一下,谢谢了。
这是一条镜像帖。来源:北邮人论坛 / java / #14616同步于 2010/5/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
【急】在java中如何对一个公式进行求导
c200030838
2010/5/19镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
没试过。。。
interface Formula {
Formula qiuDao();
}
class Constant implements Formula {
double val;
public Constant(val) { this.val = val;}
public String toString() { return ""+val; }
public Forumla qiuDao() { return new Constant(0.0); }
}
class Variable implements Formula {
public String toString() { return "x";}
public Formula qiuDao() { return new Constant(1.0); }
}
class Sum implements Formula {
Formula lhs,rhs;
public Sum(Formula lhs, Formula rhs) { this.lhs=lhs; this.rhs=rhs;}
public String toString() { return "("+lhs+"+"+rhs+")"; }
public Formula qiuDao() {
return new Sum(lhs.qiuDao(), rhs.qiuDao());
}
}
class Product implements Formula {
Formula lhs,rhs;
public Product(Formula lhs, Formula rhs) { this.lhs=lhs; this.rhs=rhs;}
public String toString() { return "("+lhs+"*"+rhs+")"; }
public Formula qiuDao() {
return new Sum(new Product(lhs.qiuDao(),rhs), new Product(lhs, rhs.qiuDao()));
}
}
class Power implements Formula {
Formula base;
double exponent;
public Power(Formula base, double exponent) { this.base=base; this.exponent=exponent;}
public String toString() { return base+"^("+exponent"+")"; }
public Formula qiuDao() {
return new Product(new Constant(exponent), new Product(new Power(base, exponent-1.0), base.qiuDao()));
}
}
class Exponential implements Formula {
Formula inner;
public Exponential(Formula inner) { this.inner=inner; }
public String toString() { return "e^("+inner+")"; }
public Formula qiuDao() {
return new Product(this, inner.qiuDao());
}
}
class Logarithm implements Formula {
Formula inner;
public Logarithm(Formula inner) { this.inner=inner; }
public String toString() { return "log("+inner+")"; }
public Formula qiuDao() {
return new Product(new Power(inner, -1.0), inner.qiuDao());
}
}
class Sine implements Formula {
Formula inner;
public Sine(Formula inner) { this.inner=inner; }
public String toString() { return "sin("+inner+")"; }
public Formula qiuDao() {
return new Product(new Cosine(inner), inner.qiuDao());
}
}
class Cosine implements Formula {
Formula inner;
public Cosine(Formula inner) { this.inner=inner; }
public String toString() { return "cos("+inner+")"; }
public Formula qiuDao() {
return new Product(new Product(new Constant(-1.0), new Sine(inner)), inner.qiuDao());
}
}