Главная  Длительная эволюция 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [ 33 ] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

Table[Random[],{7}]

{ 0.242873, 0.844294, 0.887767, 0.938646, 0.692790, 0.580143, 0.363467}

В этом случае результат вычисления не состоит из копий однсь го и того же выражения, как это было в предыдущем примере. Выражение Random[type, range] дает псевдослучайные числа типов Integer, Real или Complex, заключенные в интервале range.

Table[Random[Integer,{0,9}],{l7}]

{0,0,8,9,9,5,7,3,5,2,6,1,9,3,9,7,4}

В случае типа Real третий аргумент функции Random может задавать число цифр, используемых для представления вещественного числа.

Вернемся к функции Table. Выражение ТаЬ1е[ехрг, {i, п}] при вычислении приводит к списку из п значений выражения ехрг, отвечающих параметру i, изменяющемуся от 1 до п.

Table[N[Log[i]],{i,10}]

{0,0.693147,1.09861,1.38629,1.60944,1.79176,1.94591, 2.07944,2.19722,2.30259}

Второй аргумент функции Table называется итератор. Если итератор имеет вид {г,т,п}, то ехрг вычисляется начиная с г = ТП, если же итератор равен {i,m,n,di}, то di есть шаг по переменной г. В случае, когда указано несколько итераторов: Table[expr,{i,imin,imax},{j,jmin,jmax},...], порождаются вложенные списки:

Table[i-f-j,{i,l,2},{j,l,3}] {{2,3,4},{3,4,5}}

Верхние границы второго и последующих итераторов могут зависеть от переменных предшествующих итераторов. В частности, это позволяет получать треугольные таблицы.



Table[x-(i+j),{i,l,3},{j,l,i}] TableForm

x* х х

функция Array [а, п] порождает список длины п с элементами a[i] для г = 1,2,...,п. Итератор, заданный в виде {п1,П2,...}, приводит к вложенному списку с элементами a[ii,i2,...]:

Array[a,{3,2}]

{ {а[1,1],а[1,2]}, {а[2,1],а[2,2]}, {а[3,1],а[3,2]} }

Функция Аггау[а, iterators, origin] дает список, в котором индексы итераторов изменяются со значения origin, по умолчанию равному единице. Если же аргументы функции Array заданы в виде Аггау[а,iterators,origin,h], то получается выражение „Математики", в котором заголовок List всюду заменен на заголовок h.

Array[b,4,2,PIus]

b[2] + b[3] + b[A] + b[5]

Выражение DiagonalMatrix[list] порождает список, отвечающий двумерной диагональной матрице с элементами из списка list на главной диагонали, в то время как функция IdentityMatrix[n] дает единичную п х п матрицу.

4.2, Преобразования списков

К числу простейших преобразований, которые можно проделать над списками, относятся добавление к списку и удаление элементов из списка. С помощью функции Append элемент elem можно поставить на последнее место списка list, а с помощью функции Prepend - на первое место в списке. ,



Append[{a, Ь, с}, elem]

{a,6,c,e/em}

Prepend[{a, b, с}, elem]

{e/em,a,b,c}

Каждый элемент списка однозначно определяется своим номером, положительным, если отсчет ведется слева, или отрицательным, если отсчет ведется справа. Функция Insert позволяет вставить elem в список, поместив его на к-е место. Остальные элементы сохраняются в списке.

{Insert[{a,b,c,d},elem,2], Insert[{a,b,c,d},elem,-2]}

{ {а, elem, b, с, d},{a, b, с, elem, d} }

Как мы уже отмечали, элементами списка могут быть любые выражения „Математики", в том числе списки. Новый элемент elem можно вставить в любой внутренний список в списке list или внутрь любого элемента списка, если этот элемент не является атомарным выражением.

Insert[{{a,b,c},{l,3}},2,{2,2}] {{а,6,с},{1,2,3}}

Указание позиции в виде {2,2} означает, что новый элемент нужно вставить во второй элемент списка на второе место. Один и тот же элемент можно вставить на несколько позиций, если воспользоваться функцией Insert в следующем виде:

Insert[{{a,b,c},{l,3}},2,{{l,2},{2,l}] {{а,2,Ь,с},{2,1,3}}

Функция ReplacePart действует аналогично функции Insert с той разницей, что новый элемент замещает элемент списка list, стоящий на к-и месте.

ReplacePart[{l, 3} ,2,2] {1,2}



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [ 33 ] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

0.001