8

假设我有以下结果:

a=FindInstance[2*b^2 + b^3 == b^4 + t && t < 10 && t > -1, {b, t}, 
  Integers, 20]
{{b -> -1, t -> 0}, {b -> 0, t -> 0}, {b -> 1, t -> 2}, {b -> 2, 
  t -> 0}}

我怎样才能摆脱“b->”而只得到 b 答案的数组?我可以通过以下方式到达一半:

a[[All,1]]
{b -> -1, b -> 0, b -> 1, b -> 2}

但我怎样才能做到:

{-1, 0, 1, 2}

谢谢

4

2 回答 2

13

我可能从 dreeves 的回答中遗漏了一些东西,但我一直相信你这样做的方式只是写:

b /. a

在函数文档Solve的“基本示例”部分中有一个示例,它使用相同的输出样式。

于 2009-10-25T02:26:41.260 回答
3

尽管 Will 的回答是规范的做法,但我会提供一些替代方案,只是为了好玩。

In[37]:= ans={{b -> -1, t -> 0},{b -> 0, t -> 0},{b -> 1, t -> 2},{b -> 2, t -> 0}};

In[38]:= Cases[ans, (b -> a_) :> a, Infinity]

Out[38]= {-1, 0, 1, 2}

In[39]:= ans[[All, 1]][[All, 2]]

Out[39]= {-1, 0, 1, 2}

In[40]:= ans /. {b -> a_, _} :> a

Out[40]= {-1, 0, 1, 2}

In[41]:= (ans /. Rule -> List)[[All, 1, 2]]

Out[41]= {-1, 0, 1, 2}
于 2011-09-02T14:12:21.467 回答