# Oppgave 2.19 # Programmet i oppgaven g?r i en l?kke hvor n l?per fra 1 opp til og # med 59. For hver n beregnes kvadratroten av 2.0, deretter kvadratroten # av dette igjen, helt til kvadratroten er tatt n ganger. Resultatet av # denne utregningen kvadreres s? n ganger, og resultat skrives ut p? # skjermen. Ved ? studere utskriften fra programmet oppdager vi at # det endelige resultatet blir 1 n?r n er stor nok (n >= 52). For ? # studere dette, ser vi n?rmere p? et av de tilfellene hvor det g?r # galt (n=52) ved ? legge p? utskriftssetninger inne i de innerste # l?kkene: from math import sqrt n = 52 r = 2.0 for i in range(n): r = sqrt(r) print('First loop: %.16f' % r) for i in range(n): r = r**2 print('Second loop: %.16f' % r) print('%d times sqrt and **2: %.16f' % (n, r)) # Legg merke til at den ytterste for-l?kken n? er borte (den trengs # ikke, siden vi skal fokusere p? en enkelt verdi av n). Dermed m? # vi ogs? endre p? indenteringen (innrykkene av linjene) for ? f? # programmet til ? kj?re. Vi har ogs? lagt p? et print-statement # i hver av de to for-l?kkene. # Her er et lite utsnitt av utskriften fra programmet (hvor noen # av linjene er fjernet, markert med .....): # # First loop: 1.4142135623730951 # First loop: 1.1892071150027210 # First loop: 1.0905077326652577 # ..... # First loop: 1.0000000000000011 # First loop: 1.0000000000000004 # First loop: 1.0000000000000002 # First loop: 1.0000000000000000 # Second loop: 1.0000000000000000 # Second loop: 1.0000000000000000 # ..... # # Vi ser at i den f?rste l?kken blir verdien til r (som ventet) # mer og mer lik 1, og til slutt er r = 1 (med det antall desimaler # som Python her bruker). N?r vi deretter g?r inn i den andre # l?kken hvor r kvadreres gjentatte ganger, skjer det derfor ingen # endring i verdien av r, og sluttresultatet er at r = 1.