07.01.2015 Views

Opgaver

Opgaver

Opgaver

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<br />

private static void south(int n, double len) { ... }<br />

public static void main(String[] args)<br />

{<br />

pencil.jumpto(100,50);<br />

west(1,80/(2 - 1));<br />

pencil.jumpto(200,50);<br />

west(2,80/(4 - 1));<br />

pencil.jumpto(300,50);<br />

west(3,80/(8 - 1));<br />

pencil.jumpto(400,50);<br />

west(4,80/(16-1));<br />

}<br />

Opgave 3.4.4<br />

Euklids algoritme til beregning af største fælles divisor af to positive heltal<br />

er baseret på reglerne:<br />

⎧<br />

⎪⎨ x, for x = y,<br />

gcd(x, y) = gcd(x − y, y), for x>y,<br />

⎪⎩<br />

gcd(x, y − x), for y>x.<br />

a) Skriv en rekursiv metode (med to parametre x og y) som beregner og<br />

returnerer gcd(x, y).<br />

b) Skriv en ny metode, der ligeledes beregner gcd(x, y), men anvender en<br />

while-løkke i stedet for rekursion.<br />

c) Argumentér for at udførelsen af metoderne fra a) og b) altid standser.<br />

Opgave 3.4.5<br />

Binomialkoefficienten ( n<br />

k)<br />

angiver på hvor mange måder man kan udtage k<br />

elementer fra en mængde med n elementer, og den opfylder følgende ligning<br />

(for n ≥ k ≥ 0):<br />

( {(<br />

n<br />

n<br />

=<br />

k−1)<br />

· (n − k +1)/k, for k>0<br />

k)<br />

1, for k =0<br />

a) Skriv en rekursiv metode binomial (med to parametre n og k) som<br />

beregner og returnerer ( n<br />

k)<br />

.<br />

b) Lav et “execution trace” for evalueringen af udtrykket binomial(4,2).<br />

34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!