Top Banner
> f:= n -> [seq([n-k, n-k], k=0..n)]; f := n -> [seq([n - k, n - k], k = 0 .. n)] > f(6); [[6, 6], [5, 5], [4, 4], [3, 3], [2, 2], [1, 1], [0, 0]] > h:= n -> [seq([n-k, k], k=0..n)]; h := n -> [seq([n - k, k], k = 0 .. n)] > h(6); [[6, 0], [5, 1], [4, 2], [3, 3], [2, 4], [1, 5], [0, 6]] > {$-4..4}; {-4, -3, -2, -1, 0, 1, 2, 3, 4} > h:= n ->[{$0..k}, k = 0..n]; h := n -> [{`$`(0 .. k)}, k = 0 .. n]
26

> f:= n -> [seq([n-k, n-k], k=0..n)]; f := n -> [seq([n - k, n - k], k = 0 .. n)]

Jan 12, 2016

Download

Documents

merle

> f:= n -> [seq([n-k, n-k], k=0..n)]; f := n -> [seq([n - k, n - k], k = 0 .. n)] > f(6); [[6, 6], [5, 5], [4, 4], [3, 3], [2, 2], [1, 1], [0, 0]] > h:= n -> [seq([n-k, k], k=0..n)]; h := n -> [seq([n - k, k], k = 0 .. n)] > h(6); - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> f:= n -> [seq([n-k, n-k], k=0..n)];

f := n -> [seq([n - k, n - k], k = 0 .. n)]

> f(6);

[[6, 6], [5, 5], [4, 4], [3, 3], [2, 2], [1, 1], [0, 0]]

> h:= n -> [seq([n-k, k], k=0..n)];

h := n -> [seq([n - k, k], k = 0 .. n)]

> h(6);

[[6, 0], [5, 1], [4, 2], [3, 3], [2, 4], [1, 5], [0, 6]]

> {$-4..4};

{-4, -3, -2, -1, 0, 1, 2, 3, 4}

> h:= n ->[{$0..k}, k = 0..n];

h := n -> [{`$`(0 .. k)}, k = 0 .. n]

Page 2: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> h(5);

[{$(0 .. k)}, k = 0 .. 5]

> g := x -> {$0..x};> g(5);

g := x -> {`$`(0 .. x)}

{0, 1, 2, 3, 4, 5}

> h:= n ->[g(n)];

h := n -> [g(n)]

> h(6);

[{0, 1, 2, 3, 4, 5, 6}]

> h:= n ->[g(k),k = 0..n ];

h := n -> [g(k), k = 0 .. n]

Page 3: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> h(6);

[{$(0 .. k)}, k = 0 .. 6]

> h:= n ->[{$0..k},k = 0..n];

h := n -> [{`$`(0 .. k)}, k = 0 .. n]

> h(6);

[{$(0 .. k)}, k = 0 .. 6]> [$-4..4];

[-4, -3, -2, -1, 0, 1, 2, 3, 4]

> h := n -> [$ 0..n];

h := n -> [`$`(0 .. n)]

> h(6);

[0, 1, 2, 3, 4, 5, 6]

Page 4: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> {$0..4};

{0, 1, 2, 3, 4}

> {$0..0};

{0}

> {$0..1};

{0, 1}> {$0..k};

{$(0 .. k)}

> A := $1..12;

A := 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

> h := n -> [seq({$0..k}, k=1..n)];

h := n -> [seq({`$`(0 .. k)}, k = 1 .. n)]

Page 5: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> h(6);

[{0, 1}, {0, 1, 2}, {0, 1, 2, 3}, {0, 1, 2, 3, 4},

{0, 1, 2, 3, 4, 5}, {0, 1, 2, 3, 4, 5, 6}]> g:= x ->{$0..x}; g := x -> {`$`(0 .. x)}

> g(5); {0, 1, 2, 3, 4, 5}> s:n ->[seq([g(k)], k = 0..n)]; n -> [seq([g(k)], k = 0 .. n)]

> s(5); s(5)> map(abs, [-1, 3, -32, 4]);

[1, 3, 32, 4]> map(abs, {1, -1, 2, -2});

{1, 2}> map(abs, [1, -1, 2, -2]); [1, 1, 2, 2]>map(f, (1, 2, 3)); 6> map(f, {1, 2, 3}, 0, 0); {1, 4, 9}

Page 6: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

•The map2 function is similar to map, except that for each operand of expr, arg1 is passed as the first argument to fcn, the operand of expr is passed as the second argument, and arg3, ..., argn are passed as the third, ..., nth arguments.

> map2(k, m, {a,b,c});

{k(m, a), k(m, b), k(m, c)}

2.3A := [a, a, b, b, b]; B := [b, c];

hd := x -> x[1]; // all in section 1> hd(A);

> map(hd,[a, b], [a, b, c], [b, d]);

[a[1], b[1]]

> map(hd,[a, b]);

[a[1], b[1]]

Page 7: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

C:=[a, b]; C := [a, b]> map(hd,C); [a[1], b[1]]

> hd(C);

a> map(hd,C); [a[1], b[1]]

> map(hd,([a, b])); [a[1], b[1]]

> map(hd,{[a, b]}); {a}

> map(hd,[[a, b]]); [a]

>

Page 8: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

map(tl2,[[a, b]]); # again in section 1 page 14

[[b]]> map(tl2,[[a, b]]);

[[b]]

> map(tl2,[a, b]);

[a[2 .. 1], b[2 .. 1]]

> map(tl2,[[a, b,c,d]]);

[[b, c, d]]> map(tl2,[[a, b,c,d],B]);

Page 9: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

2.3

• > C:=[a, b, c,d];

• C := [a, b, c, d]

• tl2 := x -> x[2..nops(x)];• tl2 := x -> x[2 .. nops(x)]

• catLists := (x, y) -> [op(x), op(y)];• catLists := (x, y) -> [op(x), op(y)]

• > catLists([1,2,3,4],[3,4,5]);

• [1, 2, 3, 4, 3, 4, 5]

Page 10: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

•> •> catLists(hd(C), tl2(C));

• [a, b, c, d]•cons := catLists;• cons := catLists

•> g:=x -> (hd(x), tl2(x));

• g := x -> (hd(x), tl2(x))

•> g([1,2,3,4]);

• 1, [2, 3, 4]

•> h := cons@g;

• h := catLists@g

•> h([1,2,3,4]);

• [1, 2, 3, 4] •> evalb(h(C) = C);

• true

Page 11: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

2.8

• f:=x->1/(x+1);• 1• f := x -> -----• x + 1• solve(f(x) = f(y), x);• y• > solve(f(x) = y, x);• -1 + y• - ------• y• > f(%);

• 1• ------------• -1 + y• - ------ + 1• y

Page 12: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

•> simplify(%);

• y

Page 13: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

3.1.2

> tl := x ->x[2..nops(x)]; > last := x -> if nops(x) = 1 then x else last(tl(x)) fi;

Page 14: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

3.7

> cons := (x, S) -> [x, op(S)];

cons := (x, S) -> [x, op(S)]

> cons(b,[a, b, c]);

[b, a, b, c]

> cons(d,[a, b, c]);

[d, a, b, c]

Page 15: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> concat := (x, y) -> if x = [ ] then y else cons(hd(x), concat(tl(x), y)) fi;

concat := proc(x, y)option operator, arrow; if x = [] then y else cons(hd(x), concat(tl(x), y)) end ifend proc

> trace(concat); concat

Page 16: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> concat([a, b, c], [d, e]);{--> enter concat, args = [a, b, c], [d, e]{--> enter concat, args = [b, c], [d, e]{--> enter concat, args = [c], [d, e]{--> enter concat, args = [], [d, e]

<-- exit concat (now in concat) = [d, e]}

<-- exit concat (now in concat) = [c, d, e]}

<-- exit concat (now in concat) = [b, c, d, e]}

<-- exit concat (now at top level) = [a, b, c, d, e]}

Page 17: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

3.7.1 Recursive way

hd:= x -> x[1]; hd := x -> x[1]

> tl := x ->x[2..nops(x)];

tl := x -> x[2 .. nops(x)]

> subset:=(x,y)->if x = {} then true> else member(hd(x),y) and subset (tl(x),y)> fi;> > A := {a,b,c,d,e}; A := {a, b, c, d, e}> B := {e,z}; B := {e, z}> C:= {a,b}; C := {a, b}

Page 18: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> B := {e,z};

B := {e, z}> C:= {a,b};

C := {a, b}> subset(C,A);

true

> subset(B,A);

false

> subset({},A);

true

> subset(A,C);

false

Page 19: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

3.7.1 Non recursive version

subset:=(x,y)->if `intersect`(x,y) =x then print(yes) else print(no)fi;

subset := proc(x, y)option operator, arrow; if x intersect y = x then print(yes) else print(no) end ifend proc

> subset({d,e},{a,b,c});

no

> subset({a,b},{a,b,c});

yes

Page 20: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

3.7.2

• subset1:=(x,y)->if x = {} then true else if evalb(hd(x) in y) then subset1(tl(x),y) else false fi fi;

•power:=x->if x = {} then {{}}

• else power(tl(x)) union map(`union`,power(tl(x)),{hd(x)})fi;

Page 21: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

5.1.4.b

• > sum(a[n+2]*x^n, n = 0..k);• > sum(a[n]*x^(n-2), n = 2..k+2);• > simplify(sum(a[n+2]*x^n, n = 0..k));• > evalb(simplify(sum(a[n+2]*x^n, n = 0..k))=

simplify(sum(a[n]*x^(n-2), n = 2..k+2)));– False;

• > sum('a[n+2]*x^n','n'=0..4);• > a[2]+a[3]*x+a[4]*x^2+a[5]*x^3+a[6]*x^4• > sum('a[n]*x^(n-2)','n'=2..6);• > a[2]+a[3]*x+a[4]*x^2+a[5]*x^3+a[6]*x^4

• > evalb(sum('a[n+2]*x^n','n'=0..4) = sum('a[n]*x^(n-2)','n'=2..6));• true

Page 22: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

> evalb(sum('a[n+2]*x^n','n'=0..k) = sum('a[n]*x^(n-2)','n'=2..(k+2) ));false.

WHY????????????

Page 23: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

5.2

permute({a, b, c}); [[a, b, c], [a, c, b], [b, a, c], [b, c, a], [c, a, b], [c, b, a]]> > permute([r, a, d, a, r]);

[[r, a, d, a, r], [r, a, d, r, a], [r, a, a, d, r], [r, a, a, r, d],

[r, a, r, d, a], [r, a, r, a, d], [r, d, a, a, r],

[r, d, a, r, a], [r, d, r, a, a], [r, r, a, d, a],

[r, r, a, a, d], [r, r, d, a, a], [a, r, d, a, r],

Page 24: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

[a, r, d, r, a], [a, r, a, d, r], [a, r, a, r, d],

[a, r, r, d, a], [a, r, r, a, d], [a, d, r, a, r],

[a, d, r, r, a], [a, d, a, r, r], [a, a, r, d, r],

[a, a, r, r, d], [a, a, d, r, r], [d, r, a, a, r],

[d, r, a, r, a], [d, r, r, a, a], [d, a, r, a, r],

[d, a, r, r, a], [d, a, a, r, r]]

Page 25: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

n:=2;numbcomb(n,n/2); n := 2> n:=3;numbcomb(n,n/2);

n := 3

Error, (in numbcomb) 2nd argument must be an integer> n:=4;numbcomb(n,n/2); n := 4 6n:=6;numbcomb(n,n/2); n := 6 20> numbcomb(8,4); 70

5.2.3

Page 26: > f:= n -> [seq([n-k, n-k], k=0..n)];              f := n -> [seq([n - k, n - k], k = 0 .. n)]

binomial(m, k); binomial(m, k)> m:=6; k:=2; m := 6 k := 2evalb(binomial(m, k)=binomial(m-1, k)+binomial(m-1, k-1)); true

5.3.2