![](https://csdnimg.cn/release/download_crawler_static/86281995/bg6.jpg)
- 72 -
> p := x*y+a*x*y+y*x^2-a*y*x^2+x+a*x:
collect( p, [x, y], recursive );
( )
1 a y x
( )
( )
1 a y 1 a x
> collect( p, [y, x], recursive );
( )
( )
1 a x
( )
1 a x y ( )
1 a x
> collect( p, {x, y}, distributed );
( )
1 a x ( )
1 a x y ( )
1 a y x
其中的参数recureive为递归式的,而distributed为分布式的。
1.4.5 将多项式(或者值的列表)排序
将多项式(或者值的列表)按升(或降)序次方排序时作命令sort. 命令格式:
sort(L);
sort(L, F);
sort(A);
sort(A, V);
其中, L—表示要排序的列表; F(可选项)—带两个参数的布尔函数; A—代数表达式; V(可
选项)—变量
sort函数将列表L按升序次方, 将代数表达式A中的多项式按降序次方排列.
如果给定了F, 它将用来定义一个排序的列表. 如果F是符号“<”或者数值, 那么L
是一个列表类型, 按数值型降序排列; 如果F是符号“>”, L按数值型升序排列; 如果F
是一个词典编纂的符号, 那么字符串和符号列表将按词典编纂的次序排列. 另外, F必须
是一个有两个参数的布尔函数.
在Maple中, 多项式并不自动按排序次序存储而是按建立的次序存储. 值得注意的
是, sort函数对多项式的排序是破坏性的操作, 因为输入的多项式将会按排序后的次序存
储.
用来对列表排序的算法是一种带早期排序序列监测的合并排序的递归算法, 而用于
对多项式排序的算法是一个原位替换排序.
> sort([3, 2, 1, 5, 4]);
> sort(x^3+x^2+1+x^5, x);
x
x
x
1
> sort((y+x)^2/(y-x)^3*(y+2*x), x);