19. september 2001 - 22:31Der er
33 kommentarer og 1 løsning
Forkortelse af brøk
Ok, lyder måske som et hattedumt spørgsmål, men klappen er kinda gået ned:
Jeg har en brøk der hedder 28482/999 - hvordan finder jeg ud af, hvor meget den kan forkortes ned til - ikke kun for ovenstående stykke, men generealt?
9494/333 Man tager sin TI\'er, taster 28482/999 finder den dAjlige Frac (fraction) og vupti ... :D
Ellers skal du finde et tal der både går op i 28482 og i 999. Vi opdager så at 3 går op i begge tal. Så kan du jo gange med 1/3 i tælleren og i nævneren og den er en del forkortet. Så skal du se om den kan forkortes igen - altså om du kan finde et tal der går op i både 9494 og 333 ... det findes ikke, så den kan ikke forkortes mere ... :)
En rigtig brøk er der ikke kommatal i ... det er jo hele idén med brøker ... OG, hotpop ... han bedte jo ikke om en eller anden ussel afrundet værdi ... ;o)
repsac >> Yup - i starten var jeg lidt træt af at smide 769 ud på en lommeregner - en LOMMEREGNER!!! ;-) - ikke en gang går på mat. linje - det tænkte jeg i hvert fald i starten. Men det var nok ikke sååå dumt alligevel ;-)
=>jes: jeg tror jeg kan gætte det ... hedder det ikke noget med \"Samfundsfaglig/International\" (jow ... jeg kan min C&P ;o)) ... en 10\'er lige ned i lommen ... ;o)
=>hotpop: jada, men det var bare ikke en eksakt værdi ... :)
Du skal finde den største fælles divisor for begge tallene. Det gøres vha.... (bladrer dat0-bog igennem)... Euclids algoritme!
function gcd (m,n) { if (m == 0) return n; else gcd(n % m, m); }
Jeg ved godt at rekursive algoritmer ikke er det allersejeste, men således fungerer den: gcd(28482, 999) -> gcd(999, 28482) -> gcd(510, 999) -> gcd(489, 510) -> gcd(21, 489) -> gcd(6, 21) -> gcd(3, 6) -> gcd(0, 3) -> 3
Pyha! Hold tungen lige i munden. Så hvis den største fælles divisor er 3, kan man umiddelbart dele både tæller og nævner med 3.
Ja ja Jesper-dreng.. det´ er jo trods alt ikke et mate-forum så klap hesten - det´ nemt at hovere med viden . Så det der med \"beskæmmende\" og \"teoretiske baggrund\".. eh.. Ej det er ok du kan - menæh nedgør nu ikke....
jespernaur >> Ordet generelt forstod jeg ikke i den sammenhæng at det matematiske princip skulle være så generelt som muligt, men snarere at det galt for alle brøker. Faktisk vil jeg hævde at denne funktion er mere elegant end at begynde at få lister med primfaktorer som man skal begynde at sammenligne (forudsat at man ønsker at lave et program der skal kunne forkorte brøker). (her skrevet i sml):
fun gcd(0, n) = n | gcd(m,n) = gcd(n mod m, m);
fun forkort(x,y) = if gcd(x,y) > 0 then let val divisor = gcd(x,y) in (x div divisor, y div divisor) end else (x,y);
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.