Hei,
Ser på en programmeringsoppgave, å lage en "alarmklokke" - finn ut hva klokkeslettet er om 51 timer hvis klokka er 14 nå.. Tenker 14 + antall døgn - resterende timer, men visstnok verre å få det "programmert" (til å gjelde alle tilfeller), men prøvde:
tid = 14
timer = 51
alarm = (tid + timer)
while alarm > 23:
alarm -= 24
Og det fungerte, men når jeg byttet ut 51 med 324324342.., så ble prosessoren rimelig varm for å si det slik. Det må finnes en mer effektiv måte å regne ut dette på?
Finne klokkeslett etter antall timer (over 24)
Moderatorer: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa
Det du trenger er det vi kaller modulo-regning, og du er allerede inne på det.
Si klokka er 14, og vi lurer på hva klokka er om 51 timer, som i oppgaven. Det vi er ute etter å finne, er hva resten er når vi tar 14+51 og deler resultatet på 24.
14 + 51 = 65
Så trekker vi fra 24 to ganger (altså 48) og står igjen med 17 som det endelige svaret.
Dette er det samme som å spørre "hva får vi i REST når vi utfører divisjonen 65 : 24?

Som igjen betyr at $65 = 2\cdot 24 + 17$. Ser du hvordan dette henger sammen? 65 timer = 2 dager + 17 timer.
Så en løsning (i Python siden det er det du tilsynelatende bruker) kan være:
der $\%$ er modulus-operatoren.
Test kodesnutten her: https://www.online-python.com/i3ZtJCjqxb (trykk "Run" under kode-området.
Erstatt nå 51 med 324324342, så skal den fremdeles klare å regne det ut uten at prosessoren din blir spesielt varm
Si klokka er 14, og vi lurer på hva klokka er om 51 timer, som i oppgaven. Det vi er ute etter å finne, er hva resten er når vi tar 14+51 og deler resultatet på 24.
14 + 51 = 65
Så trekker vi fra 24 to ganger (altså 48) og står igjen med 17 som det endelige svaret.
Dette er det samme som å spørre "hva får vi i REST når vi utfører divisjonen 65 : 24?

Som igjen betyr at $65 = 2\cdot 24 + 17$. Ser du hvordan dette henger sammen? 65 timer = 2 dager + 17 timer.
Så en løsning (i Python siden det er det du tilsynelatende bruker) kan være:
Kode: Velg alt
tid = 14
timer = 51
sum = (tid + timer)
klokkeslett_slutt = sum % 24
Test kodesnutten her: https://www.online-python.com/i3ZtJCjqxb (trykk "Run" under kode-området.
Erstatt nå 51 med 324324342, så skal den fremdeles klare å regne det ut uten at prosessoren din blir spesielt varm
