Download - ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

Transcript
Page 1: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

30

2:

2.2:

! !

" #$

!""

# $% &%

' ()*+

,-

,-

./ (

. % "

! & " '(:

%(%')

(-)

%(%') *

'&" !&')(! +, !

'&" !&')(! +, !

+ .. +( Fibonacci

%(%')

+ .. +!), %++%+!! %,

+ .. '$'! -! ." /%+(

B. ',('&- &')(! +(,

2 ' " !&+$! ' ' '&- % -&

% &'(, , '- ')+(' !'" ' +(:

'&" (' *!(+'' ( 2.1)

( 2.2)

!'" , 0%+! , +, ( 2.3)

/%& )')' '&- !'" +(, % '( '

$+.

Page 2: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

B. ',(1. !

!

1 -&' - %2+ % -&' '3" ) ':

) , *-+ ! , %- 4: ( +$!' %2+

'( %+(!' 2-+ ! +$! !' % %%2+" ,

!", ' )".

/%%2+ ,: %+" , %%2+ , % /%%2+ ,: %+" , %%2+ , %

%-%' +$!' '( ()+)" %+, , % -'

%2+" )

%+% ' %- 2+" : 1 +$' %++- 5- ()

%%2+" ' % -+'! &' &

% ! '( +$!!

( +$' % '+$ ' + ' %2+"

6'' % ' %+(7' + '+$ ' %2+" !!

%'$ ')'!' +$!' 3%"!' '!

B. ',(1. !

"

!'!' - + $ !$ ' '3"

2" :

1. '5' - ) + % +$' %2+

2. (' )" !&-! % %+(7' 2-+ ! +$! ('%(+! %

%, % ,)%, % ,)

3. %! 4' !&$ ' !"' !'" +(

)$ % !$.

4. ' 2! )" !&-!, !'7' ))!( '%(+! %

%2+" !' + '+$ ' ('%(+! % , % %,)

5. (' '%+% + % ' '%(+!" %2+"

6. /%+(7' %+%+ '%+% $ +(

*. ',(1. !1. +( Fibonacci

#

*: (' - 5! n. %+! '( n-

Fibonacci.

%4 15 ( Fibonacci:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

. % +( (7' -!, )" !&-!:

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

>+

===

−− 2,

21,1

21 nff

nnf

nn

n

*. ',(1. !1. +( Fibonacci (1. $%,! )$ +()

$

8 ) + % +%'( %%, ))!( '(

'3":

procedure FibRec(n)

if n=1 or n=2 then

return 1

else

O + -&' %+%+ % %'5' %

)" !&-!:

a=FibRec(n-1)

b=FibRec(n-2)

c=a+b

return c

end if

end procedure

(1), 1 2( )

( 1) ( 2) (1), 2

n nT n

T n T n n

Θ = ==

− + − +Θ >

Page 3: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

*. ',(1. !1. +( Fibonacci (1. $%,! )$ +()

%

)" !&-! T’(n)=T’(n-1)+T’(n-2)+1 %'( %!'! '( -!,

5 ,

!"

!&$' '( ) '( 1) '( 2) 1 '( 1) '( 1) 1T n T n T n T n T n= − + − + ≤ − + − +

1)1(2)( +−= nAnA'%4 +$' )"

1)1(2)( +−= nAnA

)2(12

12)1(2

122...2)0(2

...

122...2)(2

...

122)3(2

12)2(2

1)1(2)(

11

21

21

23

2

nn

n

nn

kk

A

knA

nA

nA

nAnA

Θ=−

−+Θ=

=+++++=

==

=+++++−=

==

=+++−=

=++−=

=+−=

+−

)2()( nnT Ο=

*. ',(1. !1. +( Fibonacci (1. $%,! )$ +()

&

)" !&-! T’(n)=T’(n-1)+T’(n-2)+1 %'( %!'! '( -!,

5 ,

#" !"

!&$' '( ) '( 1) '( 2) 1 '( 2) '( 2) 1T n T n T n T n T n= − + − + ≥ − + − +

1)2(2)( +−= nKnK'%4 +$' )"

1)2(2)( +−= nKnK

)2(12

12)1(2

122...2)0(2

...

122...2)2(2

...

122)6(2

12)4(2

1)2(2)(

2/11)2/(

21)2/(2/

21

23

2

nn

n

nn

kk

K

knK

nK

nK

nKnK

Θ=−

−+Θ=

=+++++=

==

=+++++−=

==

=+++−=

=++−=

=+−=

+−

)2()( 2/nnT Ω=

*. ',(1. !1. +( Fibonacci (1. $%,! )$ +()

&&

%+%+ +( '(

( %+$ +!!

, % ' -+'! )" ))!(. .&. n=5:

)2()( 2/nnT Ω= )2()( nOnT =

)5(fib

)4(fib

)3(fib )2(fib

)2(fib )1(fib )1(fib )0(fib

)1(fib )0(fib

)3(fib

)2(fib )1(fib

)1(fib )0(fib

*. ',(1. !1. +( Fibonacci (3."' ..)

&

%+'$' !&$ !"' !'" ' +

$ !$:

/ / .. +( Fibonacci:

) , *-+ ! , %- 4: %+(!'

+$!, %+(7' +$! ! )$ -!, %$' %%2+"-

. .

/%%2+ ,: %+" , %%2+ ,

%-%' +$!' '( (!'- %-%' +$!' n

%%2+" )

%+% ' %- 2+" : 7! '

+$!' %++- 5- () %%2+" , +, % ' -+'!

)" ))!(.

Page 4: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

*. ',(1. !1. +( Fibonacci (4. )!( %(+!)

&

) % ! % '(':

+$!' %2+ «% , % %,», )+)"

+$!' ))& %%2+" :

Fib(1)

Fib(2) Fib(2)

Fib(n)1 2 3 4 5 6 … n

1 1 … fib(n)

*. ',(1. !1. +( Fibonacci (5.%+% + 6.+%+ )

&

8 + )$ % !$ % +%'(

%%, ))!( '( '3":

procedure FibSeq(n)

A[1]=1

A[2]=1

for i=3 to n

%+%+ +( '( (n).

A[i]=A[i-1]+A[i-2]

end for

return A[n]

end procedure

*. ',(1. !2. +!), ++%+!! ,

&!

*: () %(' 1,2,…,n % %( Ai '(

)! ! di-1 x di. ' % !' (' %++%+!!

- 1 x 2 x … x n

$%:

A1 x A2 x A3 % 1: 5x8, A2: 8x4, A3: 4x2

A1 x A2 x A3 x A4 % 1: 10x6, A2: 6x3, A3: 3x8, A4: 8x2

+:

5" +: .' %3' % ! ' % )'3:

4 A1 x A2 = C1 -%' C1 x A3 ... %3' % ( '(:

d0d1d2 + d0d2d3 + …+ d0dn-1dn

+ $ !$: %-+'3' !' '

%( ( %++%+!!( , %,. % &'

! " 2'+ (,! ! %+%+ .

*. ',(1. !2. +!), ++%+!! ,

&"

)$' ( -&' 3( - + !$ !' ,%++%+!!4. )':

A1 x A2 x A3 % 1: 5x8, A2: 8x4, A3: 4x2 %3' %$ (:

(A1 x A2) x A3

%+! A1 x A2: 5x8x4=160 %3' %$% ' %+! A1 x A2: 5x8x4=160 %3' %$% '%( 5x4, -! , C

%+! C x A3: 5x4x2=40 %3' %$% ' %(-' 5 x 2

$+ 200 %3'

A1 x (A2 x A3) %+! A2 x A3: 8x4x2=64 %3' %$% '

%( 8x2, -! , C

%+! 1 x C: 5x8x2=80 %3' %$% ' %(-' 5 x 2

$+ 144 %3'

0 ' ++ !' -, + 4' %++- %3'!

Page 5: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

*. ',(1. !2. +!), ++%+!! ,

&#

%'!! ' %(' %& %'!! ' % '

%++%+!!, '+$ ' 5'+ ! %3':

A1 x A2 x A3 x A4 %'( %'' %'( , '3":

((A1 A2) A3) A4)

((A1A2)(A3A4)) ((A1A2)(A3A4))

(A1(A2A3))A4

A1((A2A3)A4)

A1(A2(A3A4))

, '%+-3' +$ ' %'' %(! &,( &'! '(

'+' "!' ' ( 3'&,! ;

*. ',(1. !2. +!), ++%+!! , (1. %(+! ' )")

&$

'%(+! ' )" %2+" !'5 ! ' , '3":

',$' -&' ))!( (i,j) % -&' ") ! '( )+'$'

% %(' , ! +( Ai…Aj %'

2-+ ! %'' %(!.

8! , 4 ' ! %: A1A2…An-1An. '%+-3' +$ '

% ':1 2 n-1 n

% ':

A1(A2…An)

(A1A2)(A3…An)

(A1…An-2)(An-1An)

(A1…An-1)An

%+! 2-+ ! %'' %(! ' %%2+

(' ' +"! ))!( T(i,j)

" " -&' -&' - %( (0 %3')

*. ',(1. !2. +!), ++%+!! , (2. )" &-!)

&%

+ % +%'( %%, ))!( ' )" '(

+:

procedure MatMult(Ai,Ai+1,…,Aj)

if i=j then

return 0

else

' 2! %%, 2-+ ! %+" , %++%+!!4

+( %, Ai,…,Aj )()' % )" !&-!:

for k=i to j-1

ck=MatMult(Ai,…,Ak)+MatMult(Ak+1,…,Aj)+di-1dkdjend for

end if

return ck k=i,…,j-1

end procedure

<+++

==

−<≤

jidddjkMkiM

jijiM

jkijki

,],1[],[min

,0],[

1

*. ',(1. !2. +!), ++%+!! , (3."' ..)

%+'$' !&$ !"' !'" ' +

$ !$:

/ / .. +!), +/ ,:

) , *-+ ! , %- 4: %+(!'

2'+ ! +$!, '( %+(!' 2-+ ! +$! !

%%2+" % %$% % )" !&-!.

'%4 %!'(!' %2+ ' !.

3'"!' % %%2+" +$' +-

'+$ ' ' !$'! , ', %%2+ ,.

%%2+" % %$% % )" !&-!.

/%%2+ ,: %%2+" % +$! '

+$!' '( %+$ n(n+1)/2 (+' - ' 19i<j 9n)

%+% ' %- 2+" : 7! '

%+(!' %++- 5- %)' ' iAi+1

Page 6: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

*. ',(1. !2. +!), ++%+!! , (4.' %(+! /%%2/ ,)

&

%5!(!' ' % !' %-%' ' %3'% $' % % %%2+" '3 '%(+! '%%2+" .

.&. ',"!' %++%+!7' 5 %(', ' %3' %-% ( ' '3" !':

& !( ' '3" !':

-%' %4 %+(!' ' 1 %(, ' 2 %,, ' 3 %, ...

'+( (i,j) %'$' 2-+ ! %+" %3', % % $ ! %+/! +( %, Ai,Ai+1,…Aj

& !

&

!

*. ',(1. !2. +!), ++%+!! , (4.' %(+! /%%2/ ,)

)' -+'! %++%+!! %, 1234,

1: 5x3, A2: 3x4, A3: 4x8, A4:8x2, A5: 2x3

&

!

' '

'

'' ($()"

'

''( ($)%"

''' *''+' )%",($()%", $)& '*'' +)" ,( ()" , )$$

$$

& '&

'&'!(( )"

'&''*'&'+')",!( ($)'&*''+)%",!(($)&"

&"

'&''' '&*''' +$$,!(()$$,)&&$*'&'+*'' +"," ,!( ()&" *'&''+' &",!($()%"

&&$

*. ',(1. !2. +!), ++%+!! , (5. %+% +)

+ % +%'( %%, ))!( !' %3', '(

+:

procedure DP_MatMult(A1,A2,…,An)

for i=1 to n

m[i,i]=0

end for

for p=2 to nfor p=2 to n

for i=2 to n-p+1

j=i+p-1

m[i,j]=+

for k=1 to j-1

q=M[i,k]+M[k+1,j]+d[i-1]*d[k]*d[j]

if (q>M[i,j]) then M[i,j]=q

end for

end for

end for

return M[1,n]

end procedure

*. ',(1. !2. +!), ++%+!! , (6. +! +%+ )

+'( +! %+%+ :

• %4 for -&' %+%+ (n)

• )$ '%' for +%$ ))!( %+!$ , '+4

)4 %, '()' ! ))!( '%(+!. '+ '(

n2/2, %3' 4 , for, ' '+'! $ (n2) 5-.

• %3' % ( !' ' '%+: '( (n)

• '%4 '+" %+%+ '( O(n3)

Page 7: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

*. ',(1. !2. +!), ++%+!! , (%'! $!)

!

+ % -&' !'!':

/%+(7' 2-+ ! +$!, %'$ " 2-+ !

%'' %"! ' +( %, % ! &'( !' -

!- '+( %(.

'%! -5' 2-+ ! +$!, $ ' 5' %, (' 2-+ !

%'' %"!

+ %%$' '+5 4) , 4! ' '

%'! 2-+ ! +$! ' '+$.

*. ',(1. !2. +!), ++%+!! , (%'! $!)

"

%%$' + , '3":

procedure DP_MatMult(A1,A2,…,An)

for i=1 to n

m[i,i]=0

end for

for p=2 to n

for i=2 to n-p+1

H ' +" % %! -' !2+(7' !'( )&,!$ %++%+!!$ %, AiAi+1…Aj (' ! !'( s[i,j]=k, )+)" 2-+ ! %'' %(! '( (AiAi+1..k)(Ak+1…Aj)

for i=2 to n-p+1

j=i+p-1

m[i,j]=+

for k=1 to j-1

q=M[i,k]+M[k+1,j]+d[i-1]*d[k]*d[j]

if (q>M[i,j]) then M[i,j]=q , s[i,j]=k

end for

end for

end for

return M[1,n]

end procedure

*. ',(1. !2. +!), ++%+!! , (%'! $!)

#

')- $ %(, %$' %' !'"

2-+ ! +$! ' 2-+ ! %'' %(!, , '3":

procedure MatrixChainProduct(Ai,A2,…,Aj,s[1…n])

if i<j

X=MatrixChainProduct(Ai,…As[i,j],s)

Y=MatrixChainProduct(A ,…A ,s)

1% MatMult(X,Y) '( ,! + %++%+!!$ %,

% '+' "!' ! 2.1

Y=MatrixChainProduct(As[i,j+1],…Aj,s)

C=MatMult(X,Y)

return C

else

return Aiend if

end procedure

*. ',(1. !3. -! ." /%+(

$

*: () +(' & ", X=x1x2x3…xn

Y=y1y2…ym. 2''( -! " %+( .

!: ')- +( X=x1x2…xn, %+( X

7' %)"% ' +( %'( %&'( ' )5"

%, ! &'(, .

$%: $%:

X=abcdf Y=dbdaf, ' Z=bdf

X=aabaabb Y=abacba ' Z=abab

+:

5" +: /%+(7' +' %+(' , )$

!(' )$. +%+ O(2m2n(m+n))

+ $ !$: % &'

%+%+ (mn).

Page 8: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

*. ',(1. !3. -! ." /%+( (1. %(+! ' )")

%

'%(+! ' )" %2+" !'5 ! ' , '3":

',$' -&' ))!( (x1x2…xi, y1y2…yj) % -&' ")

! '( )+'$' % %(' , ! )$ +(' ,/

%' '+$ ' %+( ;

(' 4 ' ! %: =x1x2…xn-1xn /=y1y2…yn-1ym

'%+-3' +$ ' % +:

!&$' xn=ym ' - ' ! '+$ ' %+(

T(x1…xn-1, y1…ym-1)xn

)' !&$' xn=ym ' - ' ! '+$ ' %+( %

'( '+$ ' % :

T(x1…xn, y1…ym-1)

T(x1…xn-1, y1…ym)

*. ',(1. !3. -! ." /%+( (2. )" &-!)

)" !&-! % %+(7' 2-+ ! +$! '(:

≠>−−

=>+−−

==

=

ji

jin

yxjijicjic

yxjijic

ji

f

και

και

0,,],1[],1,[max

0,,1]1,1[

00,0

ji

*. ',(1. !3. -! ." /%+( (3."' ..)

&

%+'$' !&$ !"' !'" ' +

$ !$:

/ / .. '! ." /%+(:

) , *-+ ! , %- 4: %+(!'

2'+ ! +$!, '( %+(!' 2-+ ! +$! !

%%2+" % %$% % )" !&-!.

'%4 %!'(!' %2+ ' !.

3'"!' % %%2+" +$' +-

'+$ ' ' !$'! , ', %%2+ ,.

%%2+" % %$% % )" !&-!.

/%%2+ ,: %%2+" % +$! '

+$!' '( %+$ nm (+' - ' 19i,j 9n)

%+% ' %- 2+" : , +' (

)", %+(7 %++- 5- ()' %+('.

*. ',(1. !3. -! ." /%+( (4.' %(+! /%%2/ ,)

%5!(!' ' % !' %-%' ' %3'

% $' % % %%2+" '3 '%(+! '

%%2+" .

.&. ',"!' -&' 2 +(' ' " 6 5. ! &'(

[i,j] !2+(7' !(, +(' x x ….x y y …y[i,j] !2+(7' !(, +(' x1x2….xi y1y2…yj

& !

"

!

&

Page 9: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

*. ',(1. !3. -! ." /%+( (4.' %(+! /%%2/ ,)

)' ' -+'! X=abcdf Y=dbdaf

& !

! -)./0123)10)&

-)./0123)1/0)&

-)./0123)1/10)

-)./0123)1/1.0)

-)./0123)1/1.20)0)& 0)& 0) 0) 0)

-)./013)10)&

-)./013)1/0)&

-)./013)1/10)

-)./013)1/1.0)

-)./013)1/1.20)

-)./03)10)

-)./03)1/0)&

-)./03)1/10)&

-)./03)1/1.0)&

-)./03)1/1.2

0)&

-)./3)10)

-)./3)1/0)&

-)./3)1/10)&

-)./3)1/1.0)&

-)./3)1/1.2

0)&

& -).3)10)

-).3)1/0)

-).3)1/10)

-).3)1/1.0)&

-).3)1/1.2

0)&

*. ',(1. !3. -! ." /%+( (5. %+% +)

+ % +%'( %%, ))!( !' %3', '(

+:

procedure LCS(,)

for i=1 to n : c[i,0]=0

for j=1 to m : c[0,j]=0

for i=1 to n

for j=1 to mfor j=1 to m

if xi=yj then

c[i,j]=c[i-1,j-1]+1

else

if (c[i-1,j]>c[i,j-1]) then

c[i,j]=c[i-1,j]

else

c[i,j]=c[i,j-1]

end if

end if

end for

end for

return c[n,m]

end procedure

*. ',(1. !3. -! ." /%+( (. !'" *-+ ! $!)

')- %( C[M,N] % !'!' %$' '3'

2-+ ! +$! !' & (m+n) ' + )" (:

!

procedure printLCS([i],[j])

if i>0 and j>0

if xi=yj then

printLCS([i-1],Y[j-1])

print(x[i])print(x[i])

else if c[i,j]=c[i-1,j] then

printLCS(X[i-1],Y[j])

else

printLCS(X[i],Y[j-1])

end if

end if

end procedure

*. ',(1. !3. -! ." /%+( ( -+'! + !'" *..)

*+-%' %, -3' ) + !'"

2-+ ! +$!:

"

& !

! -)./0123)10)&

-)./0123)1/0)&

-)./0123)1/10)

-)./0123)1/1.0)

-)./0103)1/1.00)0)& 0)& 0) 0) 0)

-)./013)10)&

-)./013)1/0)&

-)./013)1/10)

-)./013)1/1.0)

-)./013)1/1.20)

-)./03)10)

-)./03)1/0)&

-)./03)1/10)&

-)./03)1/1.0)&

-)./03)1/1.2

0)&

-)./3)10)

-).3)10)&

-)./3)1/10)&

-)./3)1/1.0)&

-)./3)1/1.2

0)&

& -).3)10)

-).3)1/0)

-).3)1/10)

-).3)1/1.0)&

-).3)1/1.2

0)&

Page 10: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

*. ',(1. !3. -! ." /%+( (6.+%+ +()

#

/%+! +%+ :

%4 ' 2 for -& %+%+ (n)

8%' nm 5- ( (1) %3'. '%4 %+%+

'( (nm).

'%4 !+" %+%+ '( (n)+(nm)=(nm)

. !"!'5" 1

()' +( '(, 4 % )'( %

X(n) = 4X(n-2) + 2 X(n-4), n >3, X(n) = 1, n=0,1,2,3

1. &')! ' - ) + % %+(7' n-!

$

1. &')! ' - ) + % %+(7' n-!

+(. : ' )" !&-! % )(' &

' -+'! +. *'( ' !2 , ,

& ' -+'! +( ()+)" 2- ).

2. &')! ' - + )$ % !$ % +$' ()

%2+ '( 4 & ' -+'!?

. !"!'5" 2

8! , - %( '(, 4 % % '+'( % m - n ! "+'.

',$' - %&() % 3'4 % %)"% ' '+( , "

%(, %!%$' 5 !' !' % '+( %, " %(

%'4 % '+ '+&! !+$ ! . ! (i,j) ' '+$ (i,j)

',$' % 5' ! !'- '+(. % - '+( %(

%$' $' '( ' % '+( % 2(!' 24 % %, , '( '

%

%$' $' '( ' % '+( % 2(!' 24 % %, , '( '

)4 ! ', '( ' )4 )'3.

%)', ! %( % , !&" , % '+( (2,2) %$'

$' % % % '+ (3,1), (3,2) " (3,3). '4' ! "

' 1 ','( , " %(.

'+ ' - 5" )'(& 2-+ ! ))" ! !'- %(,

!+$ ! (! ' 5+2+3+6=16.

3 9 9 6 9

5 6 7 3 4

6 8 7 7 2

4 3 6 5 9

. !"!'5" 2

) %':' ' ( +$! % %, %2+" ' 2"' $

!$.

($) )4!' ' (! & + (:')4)) %+!$ '+&!

! ' 2! % %4 " %( % '+' (.

() %+%+ & &4 + $; %$!'

'5! '( !)$ + ' ' %+%+ &4;

'5! '( !)$ + ' ' %+%+ &4;

'+' ( '4 '( %':' ' % '(,! %+%+

&4, &,( )4!' ' 2" %'5" - +.

(%) '5!' ' + % %': ' ! %$' !-+ ! %

, %(:

4 3 4

2 3 4

4 1 3

4 4 3

Page 11: ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)

. !"!'5" 3

), - '! '&$ %)+ $ 4 -+ !&')!,

' + ',- 5!" ! ! , !' '& , '! '&4

%)+ ,, )" ))" ' !+" ,5-' (5"

+(!',). & ' ))" (+ '' 5) '5(7'

% ,, % ' ) 5' ,5-' . 5' ( 4

'( %+ P0 -+ %+ P8.

&

'( %+ P0 -+ %+ P8.

(1) &')! ' + )$ % !$ % %+(7' !+"

'+&! ,5-'.

(2) -3 ' + ! %)' & .