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

[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]

228 ОТВЕТЫ И РЕШЕНИЯ К УПРАЖНЕНИЯМ

10. Сначала порождаем список

t = ТаЫе[{2 Flandom[Integer] -1,2 Random[Integer] - 1}, {i, 20}], затем из t получаем

m = FoldList[Plus, О, t] / / Rest

11. Det[Outer[D, {x-- y-3, x-2 - y-2 - y}, {x,y}]/. {x 0,у 0}] = -1

12. Outer[D,{xy + z},{x,y,z}] First = {y,x,l}

13. lnner[D,{fIx,y,z],g[x,y,z],h[x,y,z]},{x,y,z}]

14. Inner[Rule,l,m,List] или Thread[Rule[l,m]]

15. Thread[Equal[m.l,r]]

Глава 5

1. perfectQ[x-] := Apply[Plus, Divisors[x]] === 2 x

2. CardDeck = Flatten[Outer[List, {s,c,h,d}, Join[{A,K,D, J}, Range[7,10]]],l]

3. perfectshuffle[x-, п.] : = Nest[Flatten[Transpose[Partition[#, 16]], 1]&, x,n]

4. deleterand[x-,n.] := Nest[Delete[#, Random[Integer, {l,Length[#]}]]fc, x,n] deal[z.] := Function[{x}, Apply[Complement[#l,#2]&,x]]/@ Partition[NestList[deleterand[# 1,8]&, z, 4], 2,1]

5. tobase[n-,b-] := Fold[(10#l + #2)&,0, IntegerDigits[n,b]]

6. Union[Select[l,Count[l,#] > 1&]]

7. Flatten[Position[l,#]ii/@Select[l,PrimeQ],2]

8. {#,Count[l,#]}&/@l Union

9. Outer[Dot, Array[w, 4], Array[w, 4]] /. Thread[Array[w, 4] -> 1] = {{4,10,3,11}, {10,30,7,35}, {3,7,5,1}, {11,35,1,59}}

10. V = Lastp] - LinearSolve[Transpose[Delete[Transpose[Delete[gs, 4]], 4]], Take [Last [gs],3]]. Delete[l,4]

Глава 6

1. 11 = 1 . {z-,u.-.,{x.-},v...} :> {z,u,{0,x},v}/; Length[{x}] < 4

2. wronsk[l List,t.Symbol] := Det[NestList[D[#, t]&,l, Lengthpi] - 1]]



3. Однострочник: ord[x-] := Plus@@Head@Head[x]. Локальные правила: ord[x-] := x/.Derivative[z..][.][. ] :> Plus[z]

4. newton[fxO-,eps.] := {{zl,z2} = {N[xO] - f[N[xO]]/f[N[xO]], N[xO]};{zl,z2} .{a-,b.} :> {a-fla]/f[a],a}/; Abs[b - a] > eps)

5. crossproduct[u List, v.List] /; Length[u] == 3 A: Length[v] == 3 : = First[Reverse/@Minors[{u, v}, 2]]

6. dirderiv[u-List,f-] /; Length[u] == 3 := u . Through[(Function[{r}, D[# 1, r]i:] /@ {x, у, z})[f[x, у, z]]]

7. decode[l.List /; Depthp] == 3] := Flattenp . {x-.,{a-,k-Integer},y- .}:>{x,Table[a,{k}],y}]

8. subsets[l.List] /; Lengthp] > 1 := Join[subsets[Rest[l]],Join[{First[l]},#l]& /@subsets[Rest[l]]] subsets[{x-}] :={{}, {x}}

9. ksubsets[l.List,(k.Integer)?Positive] /; Length[l] > к к > 1 := Union[ksubsets[Rest[l],k], (Append[#, First[l]]&:) /@ksubsets[Rest[l],k - 1]] ksubsetsp.,k-] /; Length[l] == к := {1}

ksubsetsp-,l]:= {#}&/©!

Глава 7

1. fact[n-] := Modiile[{s},If[Head[n] === Integer &:& Positive[n],

s= l;Do[s = s*i,{i,n}];s,Print["the argument is not a positive integer"]]]

2. fib[n.] := Module[{r,s},If[Head[n] ===== Integer &&: Positive[n], r = l;s = 0;Do[{r,s} = {r + s,r},{n- l}];r,

Printpthe ги-gument is not a positive integer"]]]

3. numberofprimes[n-] := Module[{s= 1}, While[Prime[s] <= n,s = s + l];s - 1]

4. cntP-List] := Module[{ll = Unionp]},Do[Forp = l;s[j] = 0,i <= Lengthp],i + +,Ifp[[i]] === = s[j] + l]],{J,Lengthpl]}]; Transpose[{ll,Array[s,Lengthpi]]}]]

5. changeto[n Integer,xJList] := Module[{r,o},r = (Range[0, #]&) /@ (Quotient[n, #]&) /@x;

о = FIatten[Outer[List, Apply [Sequence, r]],Length[x] - 1]; Select[o,x.#===n&:]]



230 ОТВЕТЫ И РЕШЕНИЯ К УПРАЖНЕНИЯМ

6. latinsquare[(n.Integer) ? Positive] ;= Module[{difQ,p,e}, difQ[x-List,y List] := Apply[And, Inner[UnsameQ,x,y ,List]];p = Permutations[Range[n]];e = p[[Random[Integer, {l,Length[p]}]]]; differ[z-List,u.] := Select[z,difQ[#,u]&;];f[{z-List,v.List}] := {difTer[z, First[v]], Prepend[v, difrer[z, First[v]] [[Random[Integer, {1, Length[differ[z, First[v]]]}]]]]}; Nest[f,{p,{e}},n-1][[2]]]]

7. orthQ[x List,yJ.ist] ;= Module[{m,n},

m = MapThread[Inner[List,#l,#2,List]&,{x,y}]; n = Flatten[m, l];Length[n] == Length[Uiiion[n]]]

Глава 8

1. Apply[List,Hold[l-f2 + 3],2] ReleaseHold

2. SetAttributes[f,HoldFirst]; f[x-Plus] := Apply[List,Hold[x],2] ReleaseHold

3. SetAttributes[Informat)on, bistable]

5. Вычисление /[3] можно смоделировать выражением

Relea3eHold[Hold[{x= N[x]\Sgrt[x])]/.x 3],

поэтому вычисление выражения 3 = N[3] приводит к сообщению об ошибке. Определение можно изменить, например, так:

f[x.]:={xlN[x]-Sqrt[xl]).

Глава 9

1. В первом случае {4,9}, во втором - {4,з[2]}. Результат {4,9} не будет получен, так как символу д будет присвоена приставка Global. Для того чтобы определение для д работало, нужно вычислить выражение {n2],ag[2]}.

2. Результаты вычислений: 7 и z. Несмотря на то что текущим контекстом при вычислении выражения z = 7 был а, значение 7 было присвоено символу Globalz, так как контекст Global находился на контекстной дорожке. Символ az появился только при выполнении последнего вычисления.



[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.0011