- 积分
- 12
- 注册时间
- 2009-2-23
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2011-4-11 19:53:37
|
显示全部楼层
来自 北京
1# guocong89
我最初的想法和他是一致的,就是降幂排列是Factor的一个选项,但看一下帮助就知道并不是这么回事。
我觉得这是由Times本身的Orderless属性决定的。
通过以下函数我们可以得到降序排列的因子序列
- res = Factor[x^8 - 1];
- res = Sort[Evaluate[res /. Times -> List],
- Exponent[#1, x] > Exponent[#2, x] &]
复制代码
- {1 + x^4, 1 + x^2, 1 + x, -1 + x}
复制代码
但是把Times Apply 到上述结果后,结果又还原为(-1 + x) (1 + x) (1 + x^2) (1 + x^4)
为了解决这个问题,我只能想到一个曲线救国的方针,
- Unprotect[Times];
- oldAtt = Attributes[Times];
- ClearAttributes[Times, Orderless];
- Times@@res
- Attributes[Times] = oldAtt;
- Protect[Times];
复制代码
但是感觉这么做好山寨,请问有没有更好的方式呢? |
|