Kitonum

21435 Reputation

26 Badges

17 years, 28 days

MaplePrimes Activity


These are answers submitted by Kitonum

In the procedure  the standard algorithm was used for an even number of participants. See  http://en.wikipedia.org/wiki/Round-robin_tournament  .

Schedule:=proc(n::even)

local L, k, i;

if n=4 then L:=[[[1,4],[2,3]], [[1,3],[4,2]], [[1,2],[3,4]]] else

L[1]:=[seq([i,n-i+1], i=1..n/2)];

for k from 2 to n-1 do

L[k]:=[[1,L[k-1][2,2]], [L[k-1][1,2],L[k-1][3,2]], seq([L[k-1][i,1],L[k-1][i+2,2]], i=2..n/2-2), [L[k-1][n/2-1,1],L[k-1][n/2,1]]];

od; fi;

for i to n-1 do

print([seq(convert(L[i][j],set), j=1..n/2)]);

od;

end: 

 

Example for n=16:

Schedule(16);

 

 

The following code solves the logic problem for sorts of sports.  Solution of the problem of the composition of departments used in this code:

restart;

Names:=[Alex, Betty, Carol, Dan, Earl, Fay, George, Harry]:

Sports:=[football, cricket, volleyball, badminton, lawn_tennis, basketball, hockey, table_tennis]:

Variants:=combinat[permute](Sports):

Terms:='[Dan<>football, Dan<>cricket, Alex=table_tennis, Carol=hockey, George<>cricket, George<>badminton, 'Dan=football or Betty=football or Carol=football', 'Fay=volleyball or Alex=volleyball', Dan<>badminton, Dan<>lawn_tennis, Betty<>badminton, Betty<>lawn_tennis, Carol<>badminton, Carol<>lawn_tennis, Harry<>cricket]':

Solutions:=[]:

for variant in Variants do

if convert(subs([seq(Names[i]=variant[i], i=1..8)], Terms), `and`) then Solutions:=[op(Solutions), variant] fi:

od:

seq(Names[i]=op(Solutions)[i], i=1..8);

This equation has five (real or complex) roots, which Maple can not find in radicals. 

RootOf(20+60Z+335Z2+825Z3+1629Z4+2520Z5, index=3)  is the third root of this list.

You have assigned the name  с  to  a + b , and not vice versa.

Solution the problem:

restart;

algsubs(a+b=c, [a+b+2, a+2+b, b+2+a]);

                         [c+2, c+2, c+2]

 

Here is the solution of the logic problem for composition of departments:

restart;

Names:={Alex, Betty, Carol, Dan, Earl, Fay, George, Harry}:

A:=combinat[choose](Names, 3):

L:=[]:

for i in A do

B:=combinat[choose](Names minus i, 3);

for j in B do

L:=[op(L), [i, j, (Names minus i) minus j]];

od: od:

Organization:={seq(op(combinat[permute](L[k])), k=1..nops(L))}:

Terms:=[Dan in Administration, Fay in Personnel, Alex in Personnel, 'nops(Personnel)=2', not(Earl in Administration), not(Harry in Administration), not(Carol in Marketing), not(George in Administration)]:

Departments:=[]:

for variant in Organization do

Personnel:=variant[1]: Administration:=variant[2]: Marketing:=variant[3]:

if convert(Terms, `and`) then Departments:=[op(Departments), variant]; fi;

od:

op(Departments);

                           [{Fay, Alex}, {Dan, Betty, Carol}, {Earl, George, Harry}]

 

Thus we have the unique solution:

Personnel={Fay, Alex},  Administration={Dan, Betty, Carol},  Marketing={Earl, George, Harry}

Similarly, we can find the distribution of sorts of sport.

 

In fact, there is no error, because  cos  function is even, ie  cos(-x) = cos(x). If you do not confuse the extra parentheses, you can write:

cos(``(Phi1(x)-psi));

 

If further transformations are not planned, you can just write:

cos(``*Phi1(x)-psi);

 

 

Replace simplify by  radnormal .

Procedure  Horner  using Horner's method calculates the value of the polynomial  P  in the point  x0 :

restart;

Horner:=proc(P::polynom, x0::realcons)

local n, x, b, i, a;

n:=degree(P); x:=op(indets(P));

assign(seq(a[k]=coeff(P, x, k), k=0..n)); b:=a[n];

for i from n-1 by -1 to 0 do

b:=a[i]+b*x0;

od;

b;

end;

 

Example:

Horner(x^3-5*x^2-3*x+4, 3);

                   -23

Example:

f:=unapply(expand(sum((x1+x2+x3)^i, i=1..5)), x1,x2,x3);

f(a,b,c);

restart;

sol := solve([sin(a)-sin(b) = 0, b >= 0, b < 2*Pi], b, allsolutions, explicit);

seq(eval(op(sol[i]), op(`minus`(indets(sol[i]), {a, b})) = 0), i = 1 .. 2);

 

 Addition:  if instead of   specific angle to write, there is no problem.

restart;

solve({sin(Pi/6)-sin(b) = 0, b>=0, b<2*Pi}, b, allsolutions, explicit);

 

 

You can just use  simplify  command. For a more substantial simplification seems to be  specified numerical values ​​to all constants.

simplify(dsolve({ODE,bcs}));

SeqInColumn:=proc(S)

local i;

for i to nargs-1 do

print(args[i], ``);

od;

args[nargs];

end:

 

Your example:

B := b=2:

C := c=3:

A := B, C:

SeqInColumn(A);

                b=2,
                 c=3

Your example:

restart;

eq:=f(x)=1+x*f(x)^2;

f(x):=a+b*x+c*x^2+d*x^3;

expand(eq);

sys:={seq(coeff(lhs(eq), x, k)=coeff(rhs(eq), x, k), k=0..3)};

solve(sys);

 

 

Or

member(5, {seq(13^k mod 100, k=1..1000)});

                                   false

 

The benefit a set compared to a list that automatically repetitive elements removed from a set and it is sorted in ascending order.

Try

 Hits := identify(d);

for i from 1 to 501 do if type(Hits[i], 'float') = false then  print(Hits[i]) end if end do;

First 246 247 248 249 250 251 252 Last Page 248 of 289