Minimumsverdi med while-løkke

Minimumsverdi med while-løkke

Siri har laget programmet nedenfor.

def f(x):
    return x ** 2 + 2 * x - 15

x = -5
verdi = f(x)

while x <= 5:

    if f(x) < verdi:
        verdi = f(x)

    x = x + 1

print(verdi)

Hva finner Siri ut når hun kjører programmet? Hvilken verdi skrives ut?

Fasit

Programmet skriver ut 16\underline{\underline{-16}}. Siri finner den minste funksjonsverdien til f(x)=x2+2x15f(x) = x^2 + 2x - 15 for heltall x[5,5]x \in [-5, 5].

LøsningsforslagKI-generert

Programmet definerer f(x)=x2+2x15f(x) = x^2 + 2x - 15 og starter med x=5x = -5 og verdi = f(-5).

While-løkka går gjennom heltallene x=5,4,3,,5x = -5, -4, -3, \ldots, 5. For hvert steg sjekkes det om f(x)f(x) er mindre enn den lagrede verdi. Hvis ja, oppdateres verdi. Til slutt skrives den minste verdien som ble funnet.

Vi regner ut f(x)f(x) for alle heltall i intervallet:

xxf(x)=x2+2x15f(x) = x^2 + 2x - 15
5-5251015=025 - 10 - 15 = 0
4-416815=716 - 8 - 15 = -7
3-39615=129 - 6 - 15 = -12
2-24415=154 - 4 - 15 = -15
1-11215=161 - 2 - 15 = \mathbf{-16}
000+015=150 + 0 - 15 = -15
111+215=121 + 2 - 15 = -12
224+415=74 + 4 - 15 = -7
339+615=09 + 6 - 15 = 0
4416+815=916 + 8 - 15 = 9
5525+1015=2025 + 10 - 15 = 20

Den minste funksjonsverdien er f(1)=16f(-1) = -16.

Programmet skriver ut 16\underline{\underline{-16}}.

Sensorveiledning

I utgangspunktet gis 1 poeng for hvert riktig svar som er argumentert for.