Страница 1 из 1

Возможно ли оставить в списке все элементы большие k

Добавлено: Вт май 21, 2013 5:06 pm
Василий1001
Возможно ли оставить в списке все элементы большие (меньшие, большие или равные) заданного значения k?
Каким образом это реализовать?[/b]

Добавлено: Вт май 21, 2013 6:13 pm
Selin
Ниже приведен исходник функции для вычисления элементов списка l, больших k, с примером.

In[2066]:= Elements[l_List, k_] := Select[l, # >= k &]

In[2067]:= {p, a} = {1, {}}; While[p < 30,
AppendTo[a, RandomInteger[{5, 100}]]; p++]; a

Out[2067]= {72, 22, 67, 14, 100, 63, 97, 10, 21, 15, 12, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 15, 67, 18, 29, 31, 27, 70}

In[2068]:= Elements[a, 30]

Out[2068]= {72, 67, 100, 63, 97, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 67, 31, 70}

Несложно расширить данную функцию и на более общие случаи. Дерзайте. Успехов.

Добавлено: Ср май 22, 2013 11:06 am
Vasiliev
Привожу обобщение функции Selin'a на случай, когда в качестве параметра F используются Equal, Greater, GreaterEqual, Less, LessEqual и др. функции от 2 параметров.

In[2030]:= Elements[l_List, k_, F_Symbol] := Select[l, F[#, k] &]

In[2031]:= Elements[{56, 34, 23, 78, 56, 95, 23, 11, 21}, 50, Greater]

Out[2031]= {56, 78, 56, 95}

Добавлено: Ср май 22, 2013 4:34 pm
Василий1001
Selin писал(а):Несложно расширить данную функцию и на более общие случаи. Дерзайте. Успехов.


Благодарю!
Буду осваивать.

Добавлено: Чт май 23, 2013 5:04 pm
Василий1001
Selin писал(а):Ниже приведен исходник функции для вычисления элементов списка l, больших k, с примером.

In[2066]:= Elements[l_List, k_] := Select[l, # >= k &]

In[2067]:= {p, a} = {1, {}}; While[p < 30,
AppendTo[a, RandomInteger[{5, 100}]]; p++]; a

Out[2067]= {72, 22, 67, 14, 100, 63, 97, 10, 21, 15, 12, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 15, 67, 18, 29, 31, 27, 70}

In[2068]:= Elements[a, 30]

Out[2068]= {72, 67, 100, 63, 97, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 67, 31, 70}

Несложно расширить данную функцию и на более общие случаи. Дерзайте. Успехов.


Получилось!
Благодарю.

Скажите, а так будет проще?
In[13]:=
w={1,а,2,b,3,4,c}
Select[w,#<=2&]

Out[13]=
{1,а,2,b,3,4,c}

Out[14]=
{1,2}

Добавлено: Пт май 24, 2013 10:28 am
Selin
Проще, но для частного случая. Вам же дано решение для общего случая.