arna Skrevet 23. september 2005 Skrevet 23. september 2005 Leser en c++ bok nå som de nevner "Remainder operator" ( %) De viser at den fungerer slik: 6 % 8 = 6 7 % 8 = 7 8 % 8 = 0 9 % 8 = 1 10 % 8 = 2 Kan noen forklare meg hva den gjør/operer? Jeg forstår det ikke :\ Forøvrig er det noen ord og uttrykk jeg ikke finner ut av, hadde vært fint om noen visste det Foobar Analogous Reusability Superset Down in the trenches Mired Elicit Inadvertently Cascading Angle Remainder Condense Incremented Invoked Hva er konsortium / consortium ?
Peter Skrevet 23. september 2005 Skrevet 23. september 2005 (endret) Leser en c++ bok nå som de nevner "Remainder operator" ( %) De viser at den fungerer slik: 6 % 8 = 6 7 % 8 = 7 8 % 8 = 0 9 % 8 = 1 10 % 8 = 2 Remainder operator blir også kalt modulus, den returnerer rest etter å ha utført en divisjon. Den første der: I en heltallsverden, vil 6 / 8 være like 0. Dette er fordi 6 / 8 er mindre enn 1. Det vil si at vi ikke har blitt kvitt noe av 6eren, og vi sitter igjen med 6. Eks 2 9 % 8 = 1 8/8 = 1 9-(1*8) = 1 Det du får ut er den siste ligningen (selv om alle her ble 1) Eks 3: 32 % 13 = 6 32 / 13 ~= 2 (er egentlig 2,46... Det rundes alltid NED til første hele tall) 32 - (2*13) = 6 Vet ikke om jeg klarte å forklare det bra nok, kanskje noen andre vil prøve? Endret 23. september 2005 av Nazgul
Fredrik90 Skrevet 23. september 2005 Skrevet 23. september 2005 Det var forståelig for meg, Du kan sikkert venlig matte, den funksjonen returnerer resten av et delestykke.(å dividere) 912 / 3 = 303 9 1 0 12 12 0 så hvis du der hadde brukt % (modulus operatoren) hadde du fått null til svar for det er ingen rest. repeterer egentlig bare det du sa Nazgul...
arna Skrevet 23. september 2005 Forfatter Skrevet 23. september 2005 (endret) Men se foreksempel på denne: 10 % 8 = 2 Hvorfor blir den 2? (Er det fordi 2 er det høyeste tallet som går opp i begge? slik at hvis det hadde vært 10 % 9 = 3 ? ) Forøvrig hvilket formål kan dette brukes som? Jeg klarer ikke helt å se poenget med den Endret 23. september 2005 av arna
Peter Skrevet 23. september 2005 Skrevet 23. september 2005 (endret) 10 / 8 = 1 10 - 8*1 = 2 Normalt så ønsker man å vite hvor mange ganger et tall kan deles på et annet. 10/5 = 2 Derimot: Dersom du har 15 biler, og skal dele disse på 6 mennesker, hvor mange bilder får hver person, og hvor mange sitter du igjen med? 15/6 sier du, og får 2,5 i svar. Javel, hvordan kan noen få en halv bil? Det går ikke. Alle får 2 biler hver, og du sitter igjen med 3 biler selv. og det er det svaret modulus vil gi deg, nemlig 3. 15 % 6 = 3 Bruksområder for modulus varier. Jeg har f.eks. en Javaoppgave nå der jeg skal runde ned et tall til nærmeste integer (heltall) og finne ut hva resten er. En måte å gjøre dette på er jo selvfølgelig å bruke avrundingsfunksjonene som allerede eksisterer i java. En annen måte er denne: double x = 13.21; int y = (int)x/1; // (Nå er y lik 13) double rest = x-y; // (rest = 0.21) En tredje måte, er med modulus: double x = 13.21; double rest = x % 1; Tanken er Alle vet at 13 / 1 = 13 0.21 kan ikke deles på 1, derfor får man 0.21 i rest. Dette var det enkleste eksempelet jeg kom på i farten, men bruksområdene er mange. Uansett, modulus brukes når du er interessert i "resten" etter en divisjon, ikke antall ganger et tall kan divideres med et annet. Endret 23. september 2005 av Nazgul
(1)Player Skrevet 23. september 2005 Skrevet 23. september 2005 Et ganske vanlig bruksområde for modulusoperatoren(%) er når man skal generere tilfeldige tall: rand() funksjonen i c++ genererer et tall mellom 0 og RAND_MAX(RAND_MAX er vel vanligvis 32767). Hvis man f.eks ønsker seg et tilfeldig tall mellom 1 og 6(terningkast) kan man gjøre det slik: int random=rand()%6+1;
Axel`` Skrevet 24. september 2005 Skrevet 24. september 2005 Forøvrig er det noen ord og uttrykk jeg ikke finner ut av, hadde vært fint om noen visste det Foobar Analogous Reusability Superset Down in the trenches Mired Elicit Inadvertently Cascading Angle Remainder Condense Incremented Invoked Hva er konsortium / consortium ? Med unntak av foobar, så vil du nok finne betydningen av de ordene ved å slå opp i en ordbok. 'Foobar' brukes ofte som variabelnavn i programmeringseksempler og slike ting, men det har ingen spesiell betydning, man kunne like gjerne brukt et annet navn. RFC 3092 tar for seg historien og betydningen til 'foo', 'bar' og 'foobar', det står ingenting nyttig der, men det er kanskje litt kjekt å vite alikevel. --Axel.
Duronator Skrevet 27. september 2005 Skrevet 27. september 2005 Når vi er inne på bruksområder kan man nevne at modulus brukes veldig mye i krypteringsalgoritmer (RSA osv), randomtall generering og f.eks. i hash funksjoner.
printf Skrevet 27. september 2005 Skrevet 27. september 2005 (endret) Et annet godt og meget enkelt eksempel på bruk er hvis man f.eks. ønsker å regne ut hvor mange timer og minutter 68 minutter er ved hjelp av heltallsdivisjon og modulus: int var=68; int t=var/60; int m=var%60; printf("%d minutter tilsvarer %d time og %d minutter",var, t, m); Utskriften på skjermen vil da bli: 68 minutter tilsvarer 1 time og 8 minutter Endret 27. september 2005 av printf
Dustwave Skrevet 29. september 2005 Skrevet 29. september 2005 (endret) hei! a % b betyr som sagt modulus.. teorien bak det er divisjon.. alle tall kan skrives på denne måten a = q * m + r hvor q er antall ganger tallet m går opp i a og r er restenen, dette skriver vi som r = a mod m eller a % m = r eksempel: a = 101, m = 11 101 mod 11 = 2 101 % 11 = 2 siden 101 = 9 * 11 + 2 håper dette gav noen mening dette er vanskelig å fatte i starten, men er lett etterhvert bare spør! Endret 29. september 2005 av Dustwave
Dustwave Skrevet 29. september 2005 Skrevet 29. september 2005 forresten, andre MEGET viktige områder dette brukes er innen kryptering
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å