JaySpearing Skrevet 14. januar 2013 Del Skrevet 14. januar 2013 (endret) Kom over noe som heter modulo. Altså log.console(17 % 3); blir da 2. Jeg klarer å løse alle oppgavene der det står at jeg skal bruke modulo, men lurer egentlig veldig på hva modulo faktisk er? Skjønner ikke helt hva jeg regner ut. Hadde satt pris på om noen kunne forklart meg her. Edit: Slenger med et bilde her. Dere kan se at linje 3 = 2, linje 4 = 3 og linje 5 = 2. Har ingen anelse om hvorfor det blir akkurat det.. Endret 14. januar 2013 av Lindie Lenke til kommentar
Araho Skrevet 14. januar 2013 Del Skrevet 14. januar 2013 Det er "rest", som det heter i matematikken. I praksis er det heltallsdivisjon. 17 / 3 i heltall er det samme som 15 / 3 (altså 3), pluss at du har to til overs, altså "resten", som modulo gir deg. 1 Lenke til kommentar
JaySpearing Skrevet 14. januar 2013 Forfatter Del Skrevet 14. januar 2013 Det er "rest", som det heter i matematikken. I praksis er det heltallsdivisjon. 17 / 3 i heltall er det samme som 15 / 3 (altså 3), pluss at du har to til overs, altså "resten", som modulo gir deg. Det jeg ikke forstår er at 14 % 3 = 2. Om jeg tar 14 / 3 så går jo tallet 3, 3 ganger opp og blir 9. Da har jeg vel 0 i rest? Ikke 2? Lenke til kommentar
TSP Skrevet 14. januar 2013 Del Skrevet 14. januar 2013 Det jeg ikke forstår er at 14 % 3 = 2. Om jeg tar 14 / 3 så går jo tallet 3, 3 ganger opp og blir 9. Da har jeg vel 0 i rest? Ikke 2? Tenk på det som at du skal plusse tallet etter % med seg selv frem til du ikke kan plusse en gang til uten at tallet blir høyere enn tallet før prosent-tegnet. Eller at du følger gangetabellen for tallet. 3, 6, 9, 12, 15 ... På 15 har vi kommet for langt i 3-gangen siden vi ble bedt om 14. Dermed går vi ett steg tilbake, som blir 12. 14-12=2. Altså blir det 2 i rest. Lenke til kommentar
JaySpearing Skrevet 14. januar 2013 Forfatter Del Skrevet 14. januar 2013 Tenk på det som at du skal plusse tallet etter % med seg selv frem til du ikke kan plusse en gang til uten at tallet blir høyere enn tallet før prosent-tegnet. Eller at du følger gangetabellen for tallet. 3, 6, 9, 12, 15 ... På 15 har vi kommet for langt i 3-gangen siden vi ble bedt om 14. Dermed går vi ett steg tilbake, som blir 12. 14-12=2. Altså blir det 2 i rest. Takk for et godt svar! Nå gir alt mening her! Lenke til kommentar
nebrewfoz Skrevet 14. januar 2013 Del Skrevet 14. januar 2013 (a/b)*b + (a%b) = a .... Lenke til kommentar
etse Skrevet 14. januar 2013 Del Skrevet 14. januar 2013 Det jeg ikke forstår er at 14 % 3 = 2. Om jeg tar 14 / 3 så går jo tallet 3, 3 ganger opp og blir 9. Da har jeg vel 0 i rest? Ikke 2? Her regner du feil: 14 % 3 regnes på denne måten: 14 / 3 = 4 (ikke 3) 3 * 4 = 12 14 - 12 = 2 ---> 14 % 3 = 2 En enkel kode for å regne ut modulo, gitt a % b: int modulo(int a, int b) { int x = a / b; int y = x * b; return a - y; } 1 Lenke til kommentar
JaySpearing Skrevet 14. januar 2013 Forfatter Del Skrevet 14. januar 2013 Her regner du feil: 14 % 3 regnes på denne måten: 14 / 3 = 4 (ikke 3) 3 * 4 = 12 14 - 12 = 2 ---> 14 % 3 = 2 En enkel kode for å regne ut modulo, gitt a % b: int modulo(int a, int b) { int x = a / b; int y = x * b; return a - y; } Er ikke dette en enklere kode: console.log(a % b); ? Lenke til kommentar
etse Skrevet 14. januar 2013 Del Skrevet 14. januar 2013 Er ikke dette en enklere kode: console.log(a % b); ? selvfølgelig. Jeg prøvde bare å vise hva den koden gjør, litt mer steg for steg. (altså ment for at du skal forstå det bedre). Jeg ville aldri brukt den koden jeg skrev i praksis, da den gjør akkurat det samme som den koden du skrev. 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå