找回密码
 注册
Simdroid-非首页
查看: 129|回复: 3

[编程进阶] [问题研讨]怎样对含参数的数据进行排序

[复制链接]
发表于 2011-3-7 22:35:59 | 显示全部楼层 |阅读模式 来自 北京
群里一个问题,解方程得到多个解,想对结果进行排序,但是结果中有一些参数,提供了参数的限制条件,那么怎么进行排序呢?
问题简化一点,有方程
(x - a) (x - b) (x - a - b) (x - 2 a - b) == 0 以及 条件 a>b>0
那么怎么使结果排序呢?

我的解法是

  1. Sort[x /. Solve[(x - a) (x - b) (x - a - b) (x - 2 a - b) == 0, x] //
  2.   Flatten, Assuming[{a > b, b > 0}, Refine[#1 < #2]] &]

  3. {b, a, a + b, 2 a + b}
复制代码



大家有没有更简洁的方法呢?
发表于 2011-3-10 16:39:54 | 显示全部楼层 来自 山东济南
Simdroid开发平台
SortBy[x /. Solve[(x - a) (x - b) (x - a - b) (x - 2 a - b) == 0, x],
Assuming[{a > b, b > 0}, Total]& ]
回复 不支持

使用道具 举报

发表于 2011-3-11 12:38:08 | 显示全部楼层 来自 上海松江区
2# treemantan

treemantan的代码虽然更短,但是结果不对啊。结果为:
{a,b,a+b,2 a+b}

guocong89的结果是正确的:
{b,a,a+b,2 a+b}
回复 不支持

使用道具 举报

发表于 2012-1-12 22:17:30 | 显示全部楼层 来自 浙江金华
:)
Sort[x /.
   Solve[(x - hell) (x - b) (x - hell - b) (x - 2 hell - b) == 0, x] //
  Flatten, Hash[#] &],把a改成hell,凑合一下吧,不知道是否有正确理解题意
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-3 18:52 , Processed in 0.032761 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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