如果变量$ n $是指数变量,我想在表达式中确定为2^n
或n^2
或2*n
。因此,在这些情况下,只有第一个会返回true
。
有什么想法吗?
答案 0 :(得分:1)
简单的答案是使用freeof
:
(%i1) exponentp(e,n):=not mapatom(e) and
op(e) = "^" and not freeof(n,second(args(e)))$
然后:
(%i2) map(exponentp,[2*n,n^2,2^n,(n+1)^(a+b), (a+b)^(n+c),2^(3/n+1)],[n,n,n,n,n,n]);
(%o2) [false,false,true,false,true,true]
我相信,这是理想的答案。