Hannes algoritme for største kvadrater som dekker et rektangel

Hele eksamen, alle hjelpemidler

Hannes algoritme for største kvadrater som dekker et rektangel

Lest inn av KI og ikke kontrollert manuelt enda — kan inneholde feil.

Hanne er kunstner og arbeider med rektangler i ulike størrelser. Lengdene til sidene i rektanglene er hele tall.

Hun vil dekke et rektangel med små røde kvadrater. Kvadratene skal ligge tett inntil hverandre, og alle skal være like store. Hanne vil lage en algoritme som hun kan bruke for å finne ut hvor store kvadratene maksimalt kan være.

Hun har laget noen figurer som skal vise hvordan hun tenker.

Ti figurer. 1: «Jeg har et rektangel.» 2: «Jeg starter med å legge på et størst mulig kvadrat.» 3–9: Hanne fyller resten av rektangelet med stadig mindre kvadrater. 10: Hele rektangelet er dekket av like store røde kvadrater

Hjelpemiddelkrav: For hånd

Lag en algoritme som beskriver måten Hanne vil løse problemet på.

Hjelpemiddelkrav: Oppsett for hånd

Bruk programmering til å lage et dataprogram med utgangspunkt i algoritmen. Når Hanne forteller programmet hvor lange sidene i rektangelet er, skal programmet bestemme hvor store sidekantene i kvadratene maksimalt kan være.

Fasit

Se algoritme i løsningsforslaget (Euklids algoritme).

Program som gir gcd⁡(a,b), f.eks. side=2 for rektangel 18×8

LøsningsforslagKI-generert

Ser vi på figurene til Hanne, gjør hun det samme hver gang: hun legger et størst mulig kvadrat inntil rektangelet, og det som blir igjen er et nytt, mindre rektangel. Dette gjentas helt til det som er igjen selv er et kvadrat (helt dekket av like store kvadrater).

Dette er nøyaktig framgangsmåten i Euklids algoritme for å finne den største felles faktoren (gcd) til to hele tall — her sidelengdene a og b i rektangelet.

Algoritmen kan beskrives slik, i ord:

  1. La a være den lengste siden og b den korteste siden i rektangelet.
  2. Legg på et størst mulig kvadrat med sidekant b inntil rektangelet.
  3. Det som er igjen av rektangelet, har sidene b og r, der r er resten når a deles på b (altså r=amodb).
  4. Sett a=b og b=r, og gjenta fra steg 2.
  5. Når resten r blir 0, er hele det opprinnelige rektangelet dekket av kvadrater med sidekant lik den siste verdien av b. Dette er den maksimale sidekanten kvadratene kan ha.

Som pseudokode:

SETT a = lengste side
SETT b = korteste side
SÅ LENGE b ≠ 0
    r = a MOD b
    a = b
    b = r
SLUTT SÅ LENGE
Sidekanten til de største kvadratene er a

Vi bruker samme algoritme til å skrive et program. Programmet spør etter sidene i rektangelet og regner ut den maksimale sidekanten med Euklids algoritme (modulo-operasjonen % i Python):

def storste_kvadrat(a, b):
    while b != 0:
        a, b = b, a % b
    return a

lengde = 18
bredde = 8
sidekant = storste_kvadrat(lengde, bredde)
print(f"Kvadratene kan maksimalt ha sidekant {sidekant}.")

Kjøring av programmet med et rektangel på 18×8 gir følgende utskrift:

Kvadratene kan maksimalt ha sidekant 2.

Det stemmer: 18=2⋅9 og 8=2⋅4, så 2 er den største felles faktoren til 18 og 8, og dermed den maksimale sidekanten kvadratene kan ha for å dekke rektangelet helt.

Programmet gir altså sidekanten til de største kvadratene som kan dekke et rektangel, ved å bruke Euklids algoritme (gjentatt modulo-operasjon) helt til resten blir 0.

Forstå oppgaven med en KI

Du får en ferdig tekst du limer inn i den KI-chatboten du bruker. Teksten inneholder oppgaven og en instruks om at chatboten skal hjelpe deg å tenke selv — stille spørsmål, gi ett hint av gangen og la deg gjøre regningen.

Anbefalt. Chatboten får beskjed om å bruke det til å veilede deg riktig vei — ikke til å røpe svaret. Du kan slå det av hvis du vil være helt sikker på at ingenting lekker.

Hva du bør vite
  • Ingenting sendes herfra. Teksten kopieres bare til utklippstavla på enheten din. Det du limer inn i en chatbot, går til den tjenesten — og de har sine egne regler for hva de lagrer.
  • Ikke lim inn personopplysninger — navn, skole eller noe annet om deg selv eller andre. Oppgaveteksten holder.
  • KI kan ta feil, også i matematikk. Sjekk alltid mot løsningsforslaget her på siden.
  • Er du usikker på om du har lov til å bruke KI på skolearbeidet ditt, spør læreren din først.

Tastatursnarveier

Navigasjon

⌘K / Ctrl+K
Åpne søk
G F
Gå til Fag
G E
Gå til Eksamener
G T
Gå til Temaer
G K
Gå til Kompetansemål
G H
Hjem
?
Vis snarveier

I oppgave

←/→ · J/K
Forrige / neste oppgave
0
Marker som ikke prøvd
1
Marker som prøvd
2
Marker som trenger hjelp
3
Marker som ferdig
S
Vis / skjul løsningsforslag
A
Legg til i liste
N
Skriv notat
Esc
Tilbake / avslutt