Mathematica: избавление от «x ->» в результатах FindInstance - PullRequest
8 голосов
/ 24 октября 2009

Предположим, у меня есть следующие результаты:

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}

Спасибо

Ответы [ 2 ]

12 голосов
/ 25 октября 2009

Возможно, я что-то упустил из ответа дривов, но я всегда верил, что ты это делаешь, просто написав:

b /. a

Пример этого есть в разделе «Основные примеры» документации по Solve функции , которая использует тот же стиль вывода.

3 голосов
/ 02 сентября 2011

Хотя ответ Уилла - канонический способ сделать это, я приведу несколько альтернатив для развлечения.

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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...