Ümardamine

Sõna "ümardamine" tähendab arvväärtuse asendamist teise väärtusega, mis on ligikaudu võrdne, kuid mille vorm on lühem, lihtsam või selgem. Näiteks 23,74 USA dollarit võib ümardada 24 USA dollariks või murdosa 312/937 võib ümardada 1/3-ni või väljend 2 {\displaystyle {\sqrt {2}}{\displaystyle {\sqrt {2}}} 1,41-ks.

Ümardamist tehakse sageli meelega, et saada väärtus, mida on lihtsam kirjutada ja käsitseda kui algset. Ümardamist võib teha ka selleks, et näidata arvutatud arvu täpsust; näiteks suurus, mis on arvutatud 123,456, kuid mille täpsus on teadaolevalt vaid mõnesaja ühiku piires, on parem märkida "umbes 123,500".

Teisest küljest võib ümardamine tuua tulemusse mõningase ümardamisvea. Ümardamine on paljude arvutuste puhul peaaegu vältimatu, eriti kahe arvu jagamisel täisarvu- või täispunktiaritmeetikas, matemaatiliste funktsioonide, näiteks ruutjuurte, logaritmide ja siinuste arvutamisel või kui kasutatakse fikseeritud arvuga ujukomaarvu esitusviisi. Arvutuste jadas kumuleeruvad need ümardamisvead üldiselt ja teatud "halva seisundi" korral võivad need muuta tulemuse mõttetuks.

Transtsendentsete matemaatiliste funktsioonide täpne ümardamine on keeruline, sest ette ei saa teada, mitu lisakohta tuleb arvutada, et otsustada, kas ümardada üles- või allapoole. Seda probleemi nimetatakse "tabeli tegija dilemmaks" (allpool).

Ümardamisel on palju sarnasusi kvantimisega, mis toimub siis, kui füüsikalised suurused tuleb kodeerida numbritega või digitaalsignaalidega.

Ümardamise tüübid

Tüüpilised ümardamisprobleemid on järgmised:

  • irratsionaalse arvu lähendamine murdudega, nt π 22/7-ga;
  • perioodilise kümnendmurru lähendamine lõpliku kümnendmurru abil, nt 5/3 1,6667-ga;
  • ratsionaalarvu asendamine väiksema lugeja ja nimetajaga murdega, nt 3122/9417 1/3-ga;
  • murdarvu kümnendarvu asendamine vähemate numbritega, nt 2,1784 dollarit 2,18 dollariga;
  • kümnendiku täisarvu asendamine täisarvuga, millel on rohkem tagumisi nulle, nt 23,217 inimest 23,200 inimesega; või üldiselt,
  • väärtuse asendamine kindlaksmääratud arvu kordajaga, nt 27,2 sekundit 30 sekundiga (15 kordaja).

Ümardamine kindlaksmääratud juurdekasvuni

Kõige tavalisem ümardamise viis on ümardamine täisarvuni või üldisemalt mingi suurusjärgu täisarvulise kordseni - näiteks ümardamine sekundite kümnendikuni, dollari sajandikuni, 1/2 või 1/8 tolli täisarvuni, kümnendite või tuhandete täisarvuni jne.

Üldiselt tähendab arvu x ümardamine mingi kindla arvu m mitmekordseks korrutamiseks järgmisi samme:

  1. Jagame x jagatise m-ga, tulemus olgu y;
  2. Ümardage y täisarvuks, nimetage seda q;
  3. Ümardatud väärtuse z saamiseks korrutatakse q arvuga m.

z = r o u n d ( x , m ) = r o u n d ( x / m ) m {\displaystyle z=\mathrm {round} (x,m)=\mathrm {round} (x/m)\cdot m\,} {\displaystyle z=\mathrm {round} (x,m)=\mathrm {round} (x/m)\cdot m\,}

Näiteks x = 2,1784 dollarit ümardamine täisarvuni (st 0,01 kordne) tähendab, et arvutatakse y = x/m = 2,1784/0,01 = 217,84, seejärel ümardatakse y täisarvuni q = 218 ja lõpuks arvutatakse z = q×m = 218×0,01 = 2,18.

Kui ümardatakse etteantud arvuni olulisi numbreid, sõltub juurdekasv m ümardatava arvu (või ümardatud tulemuse) suurusest.

Liigend m on tavaliselt piiratud murd, olenemata sellest, millist numbrisüsteemi kasutatakse arvude esitamiseks. Inimeste jaoks tähendab see tavaliselt kümnendsüsteemi (st m on täisarv, mis korrutab kümnesse, näiteks 1/1000 või 25/100). Digitaalarvutites salvestatavate vaheväärtuste puhul tähendab see sageli binaarset numbrisüsteemi (m on täisarv, mis on korrutatud kahega).

Abstraktsel ühe argumendiga funktsioonil "round()", mis tagastab suvalisest reaalväärtusest täisarvu, on vähemalt tosin erinevat konkreetset definitsiooni, mis on esitatud täisarvuks ümardamise osas. Abstraktne kahe argumendiga funktsioon "round()" on siin formaalselt määratletud, kuid paljudel juhtudel kasutatakse seda implicit väärtusega m = 1 juurdekasvuks ja seejärel taandub see samaväärseks abstraktseks ühe argumendiga funktsiooniks, millel on samuti kümmekond erinevat konkreetset definitsiooni.

Ümardamine täisarvuks

Kõige lihtsam ümardamise vorm on suvalise arvu asendamine täisarvuga. Kõik järgmised ümardamisviisid on eelnevates lõikudes esitatud ja kasutatud abstraktse ühe argumendiga funktsiooni "round()" konkreetsed rakendused.

On mitmeid viise, kuidas ümardada arv y täisarvuks q. Kõige levinumad on järgmised.

  • ümardada allapoole (või võtta korraks või ümardada miinus lõpmatuse suunas): q on suurim täisarv, mis ei ületa y.

q = f l o o r ( y ) = ⌊ y ⌋ = - ⌈ - y ⌉ {\displaystyle q=\mathrm {floor} (y)=\left\lfloor y\right\rfloor =-\left\lceil -y\right\rceil \,} {\displaystyle q=\mathrm {floor} (y)=\left\lfloor y\right\rfloor =-\left\lceil -y\right\rceil \,}

  • ümardada ülespoole (või võtta lagi või ümardada lõpmatuse suunas): q on väikseim täisarv, mis ei ole väiksem kui y.

q = c e i l ( y ) = ⌈ y ⌉ = - ⌊ - y ⌋ {\displaystyle q=\mathrm {ceil} (y)=\left\lceil y\right\rceil =-\left\lfloor -y\right\rfloor \,} {\displaystyle q=\mathrm {ceil} (y)=\left\lceil y\right\rceil =-\left\lfloor -y\right\rfloor \,}

  • ümardada nulli suunas (või kärpida või ümardada lõpmatusest eemale): q on y täisarvuline osa, ilma selle murdarvudeta.

q = t r u n k a t e ( y ) = sgn ( y ) ⌊ | y | ⌋ = - sgn ( y ) ⌈ - | y | ⌉ {\displaystyle q=\mathrm {truncate} (y)=\operatornimi {sgn}(y)\left\lfloor \left|y\right|right\rfloor =-\operatornimi {sgn}(y)\left\lceil -\left|y\right|\right\rceil \,} {\displaystyle q=\mathrm {truncate} (y)=\operatorname {sgn}(y)\left\lfloor \left|y\right|\right\rfloor =-\operatorname {sgn}(y)\left\lceil -\left|y\right|\right\rceil \,}

  • ümardamine nullist eemale (või ümardamine lõpmatuse suunas): kui y on täisarv, on q y; vastasel juhul on q täisarv, mis on kõige lähemal 0-le ja on selline, et y jääb 0 ja q vahele.

q = sgn ( y ) ⌈ | y | ⌉ = - sgn ( y ) ⌊ - | y | ⌋ {\displaystyle q=\operatorname {sgn}(y)\left\lceil \left|y\right|\right\rceil =-\operatorname {sgn}(y)\left\lfloor -\left|y\right|\right\rfloor \,} {\displaystyle q=\operatorname {sgn}(y)\left\lceil \left|y\right|\right\rceil =-\operatorname {sgn}(y)\left\lfloor -\left|y\right|\right\rfloor \,}

  • ümardamine lähimale: q on täisarv, mis on y-le kõige lähemal (vt allpool võrdsete arvude lahendamise reegleid).

Nelja esimest meetodit nimetatakse suunatud ümardamiseks, sest kõik nihked algarvust y ümardatud väärtuseni q on suunatud ühe ja sama piirväärtuse (0, +∞ või -∞) suunas või sellest eemale.

Kui y on positiivne, on ümardamine allapoole sama mis ümardamine nulli suunas ja ümardamine ülespoole sama mis ümardamine nullist eemale. Kui y on negatiivne, on ümardamine alla sama mis ümardamine nullist eemale ja ümardamine üles on sama mis ümardamine nulli suunas. Igal juhul, kui y on täisarv, on q lihtsalt y. Järgnev tabel illustreerib neid ümardamismeetodeid:

y

rounddown
(-∞ suunas)

roundup
(suunas +∞)

roundtowardszero

ümardamine
nullist

roundtonearest

+23.67

+23

+24

+23

+24

+24

+23.50

+23

+24

+23

+24

+23 või +24

+23.35

+23

+24

+23

+24

+23

+23.00

+23

+23

+23

+23

+23

0

0

0

0

0

0

−23.00

−23

−23

−23

−23

−23

−23.35

−24

−23

−23

−24

−23

−23.50

−24

−23

−23

−24

-23 või -24

−23.67

−24

−23

−23

−24

−24

Kui paljud arvutused tehakse järjestikku, võib ümardamismeetodi valik mõjutada tulemust väga oluliselt. Üks kuulus näide oli Vancouveri börsi poolt 1982. aastal loodud uus indeks. Algselt kehtestati indeks 1000 000 ja pärast 22 kuud oli see langenud umbes 520-le - samas kui aktsiahinnad olid selle aja jooksul üldiselt tõusnud. Probleemi põhjustas see, et indeksit arvutati iga päev tuhandeid kordi ümber ja see ümardati alati kolme kümnendkohani, nii et ümardamisvead kuhjusid. Parema ümardamisega ümberarvutamine andis sama perioodi lõpuks indeksi väärtuseks 1098,892.

Tie-breaking

Luku y ümardamine lähima täisarvuni nõuab mõnda võrdsusreeglit nende juhtumite jaoks, kui y on täpselt pool kahe täisarvu vahel - st kui y murdosa on täpselt 0,5.

Ümmargune pool ülespoole

Järgnevat tasavägistamise reeglit, mida nimetatakse ümardamiseks poole võrra ülespoole (või ümardamiseks poole võrra pluss lõpmatus), kasutatakse laialdaselt paljudes erialades. See tähendab, et poolväärtused y ümardatakse alati ülespoole.

  • Kui osa y on täpselt 0,5, siis q = y + 0,5.

q = ⌊ y + 0,5 ⌋ = - ⌈ - y - 0,5 ⌉ {\displaystyle q=\left\lfloor y+0,5\right\rfloor =-\left\lceil -y-0,5\right\rceil \,} {\displaystyle q=\left\lfloor y+0.5\right\rfloor =-\left\lceil -y-0.5\right\rceil \,}

Näiteks selle reegli kohaselt ümardatakse väärtus 23,5 väärtuseks 24, kuid -23,5 ümardatakse väärtuseks -23.

See on üks kahest reeglist, mida tavaliselt õpetatakse USA algklassides matemaatikas. []

Kui ei oleks 0,5 murdosa, oleksid ümardamisvead, mis tekivad lähimale ümardamise meetodil, üsna sümmeetrilised: iga ülespoole ümardatud murdosa (näiteks 0,268) kohta on olemas täiendav murdosa (nimelt 0,732), mis ümardatakse sama palju allapoole. Suure hulga juhusliku murdarvuga arvude ümardamisel kompenseeriksid need ümardamisvead üksteist statistiliselt ja ümardatud arvude oodatav (keskmine) väärtus oleks võrdne algsete arvude oodatava väärtusega.

Siiski ei ole ümmarguse poole ülespoole ümardamise reegel sümmeetriline, sest täpselt 0,5 suurused murdud ümardatakse alati ülespoole. See asümmeetria toob kaasa positiivse kallutatuse ümardamisvigade puhul. Näiteks kui murdosa y koosneb kolmest juhuslikust kümnendkohast, siis on q oodatav väärtus 0,0005 võrra suurem kui y oodatav väärtus. Sel põhjusel nimetatakse ümardamise reegliga ümardamist ülespoole ka (mitmetähenduslikult) asümmeetriliseks ümardamiseks.

Üks põhjus, miks ümardatakse ülespoole 0,5, on see, et tuleb uurida ainult ühte numbrit. Kui näeme näiteks 17,50000..., siis esimesed kolm numbrit, 17,5, määravad, et arv ümardatakse ülespoole 18-ni. Kui kasutataks vastupidist reeglit (ümardamine poole võrra allapoole), siis tuleks uurida kõiki nullkümnendikkohti, et teha kindlaks, kas väärtus on täpselt 17,5.

Ümmargune pool allapoole

Võib kasutada ka ümardamist poole võrra allapoole (või ümardamist poole võrra miinus lõpmatuse suunas), erinevalt tavalisemast ümardamisest poole võrra ülespoole (ümardamine poole võrra ülespoole on levinud konventsioon, kuid see ei ole midagi muud kui konventsioon).

  • Kui osa y on täpselt 0,5, siis q = y - 0,5.

q = ⌈ y - 0,5 ⌉ = - ⌊ - y + 0,5 ⌋ {\displaystyle q=\left\lceil y-0,5\right\rceil =-\left\lfloor -y+0,5\right\rfloor \,} {\displaystyle q=\left\lceil y-0.5\right\rceil =-\left\lfloor -y+0.5\right\rfloor \,}

Näiteks 23,5 ümardatakse 23-ks ja -23,5 ümardatakse -24-ks.

Ümardamine poole võrra allapoole ei ole sümmeetriline, sest täpselt 0,5 suurused murdud ümardatakse alati allapoole. See asümmeetria toob kaasa negatiivse kallutatuse ümardamisvigade puhul. Näiteks, kui murdosa y koosneb kolmest juhuslikust kümnendkohast, siis on q oodatav väärtus 0,0005 väiksem kui y oodatav väärtus. Sel põhjusel nimetatakse ümardamist lähimale poole allapoole ümardamise reegliga ka (mitmetähenduslikult) asümmeetriliseks ümardamiseks.

Ümmargune pool nullist eemale

Teine tavaliselt õpetatav ja kasutatav võrdsete häälte lahendamise meetod on ümardamine poole nullist eemale (või ümardamine poole lõpmatuse suunas), nimelt:

  • Kui osa y on täpselt 0,5, siis q = y + 0,5, kui y on positiivne, ja q = y - 0,5, kui y on negatiivne.

q = sgn ( y ) ⌊ | y | + 0,5 ⌋ = - sgn ( y ) ⌈ - | y | - 0,5 ⌉ {\displaystyle q=\operatorname {sgn}(y)\left\lfloor \left|y\right|+0.5\right\rfloor =-\operatorname {sgn}(y)\left\lceil -\left|y\right|-0.5\right\rceil \,} {\displaystyle q=\operatorname {sgn}(y)\left\lfloor \left|y\right|+0.5\right\rfloor =-\operatorname {sgn}(y)\left\lceil -\left|y\right|-0.5\right\rceil \,}

Näiteks 23,5 ümardatakse 24-ks ja -23,5 ümardatakse -24-ks.

See meetod käsitleb positiivseid ja negatiivseid väärtusi sümmeetriliselt ja on seega vaba üldisest kallutatusest, kui algsed arvud on positiivsed või negatiivsed võrdse tõenäosusega. See reegel toob siiski positiivsete arvude puhul kaasa positiivse kallutatuse ja negatiivsete puhul negatiivse kallutatuse.

Seda kasutatakse sageli valuuta konverteerimisel ja hindade ümardamisel (kui summa konverteeritakse kõigepealt valuuta väikseimasse olulisse alajaotusse, näiteks euro sentidesse), kuna seda on lihtne selgitada, võttes arvesse ainult esimest murdarvu, sõltumata täiendavatest täpsusmärkidest või summa märgist (summa maksja ja saaja range võrdväärsuse tagamiseks).

Ümardada pool nulli suunas

Samuti võib ümardada poole nulli suunas (või ümardada poole lõpmatusest eemale), erinevalt tavalisemast ümardamisest poole nullist eemale (ümardamine poole nullist eemale on levinud konventsioon, kuid see ei ole midagi enamat kui konventsioon).

  • Kui osa y on täpselt 0,5, siis q = y - 0,5, kui y on positiivne, ja q = y + 0,5, kui y on negatiivne.

q = sgn ( y ) ⌈ | y | - 0,5 ⌉ = - sgn ( y ) ⌊ - | y | + 0,5 ⌋ {\displaystyle q=\operatorname {sgn}(y)\left\lceil \left|y\right|-0.5\right\rceil =-\operatorname {sgn}(y)\left\lfloor -\left|y\right|+0.5\right\rfloor \,} {\displaystyle q=\operatorname {sgn}(y)\left\lceil \left|y\right|-0.5\right\rceil =-\operatorname {sgn}(y)\left\lfloor -\left|y\right|+0.5\right\rfloor \,}

Näiteks 23,5 ümardatakse 23-ks ja -23,5 ümardatakse -23-ks.

See meetod käsitleb ka positiivseid ja negatiivseid väärtusi sümmeetriliselt ja on seega vaba üldisest kallutatusest, kui algsed arvud on positiivsed või negatiivsed võrdse tõenäosusega. See reegel toob siiski kaasa negatiivse kallutatuse positiivsete arvude puhul ja positiivse kallutatuse negatiivsete arvude puhul.

Ümmargune pool kuni paariline

Veelgi vähem erapoolikuks osutub ümmargune poolteise võrdsuse reegel, nimelt

  • Kui y osa on 0,5, siis q on y-le lähim täisarv, mis on paariline.

Seega näiteks +23,5 muutub +24-ks, +22,5 muutub +22-ks, -22,5 muutub -22-ks ja -23,5 muutub -24-ks.

See meetod käsitleb ka positiivseid ja negatiivseid väärtusi sümmeetriliselt ja on seega vaba üldisest kallutatusest, kui algsed arvud on positiivsed või negatiivsed võrdse tõenäosusega. Lisaks sellele on ümardatud arvude eeldatav (keskmine) väärtus enamiku mõistlike y-väärtuste jaotuste puhul sisuliselt sama, mis algsete arvude väärtus, isegi kui viimased on kõik positiivsed (või kõik negatiivsed). See reegel toob siiski kaasa positiivse kallutatuse paariliste arvude (sealhulgas nulli) puhul ja negatiivse kallutatuse paaritu arvude puhul.

Seda lähimale ümardamise meetodi varianti nimetatakse ka erapooletuks ümardamiseks (mitmetähenduslikult ja veidi kuritarvitavalt), konvergentseks ümardamiseks, statistiliseks ümardamiseks, hollandi ümardamiseks, Gaussi ümardamiseks või pankurite ümardamiseks. Seda kasutatakse laialdaselt raamatupidamises.

See on vaikimisi ümardamisrežiim, mida kasutatakse IEEE 754 arvutusfunktsioonides ja operaatorites.

Ümmargune pool kuni paaritu

Teine tasavägine reegel, mis on väga sarnane ümmarguse poolega võrdseks, nimelt

  • Kui y murdosa on 0,5, siis q on y-le lähim paaritu täisarv.

Seega näiteks +22,5 muutub +23-ks, +21,5 muutub +21-ks, -21,5 muutub -21-ks ja -22,5 muutub -23-ks.

See meetod käsitleb ka positiivseid ja negatiivseid väärtusi sümmeetriliselt ja on seega vaba üldisest kallutatusest, kui algsed arvud on positiivsed või negatiivsed võrdse tõenäosusega. Lisaks sellele on ümardatud arvude eeldatav (keskmine) väärtus enamiku mõistlike y-väärtuste jaotuste puhul sisuliselt sama, mis algsete arvude väärtus, isegi kui viimased on kõik positiivsed (või kõik negatiivsed). See reegel toob siiski kaasa negatiivse kallutatuse paariliste arvude (sealhulgas nulli) puhul ja positiivse kallutatuse paaritu arvude puhul.

Seda varianti ei kasutata peaaegu kunagi enamikus arvutustes, välja arvatud olukordades, kus tahetakse vältida 0,5 või -0,5 ümardamist nullini või vältida ujukomaarvudena esitatud arvude skaala suurendamist (piiratud vahemikega skaalaeksponendi jaoks), nii et mitte lõpmatu arv ümarduks lõpmatuks või et väike denormaalne väärtus ümarduks normaalseks mittenullväärtuseks (need võivad esineda ümardamise pooleldi paariliseks režiimiga). Tõhusalt eelistab see režiim säilitada olemasolevat sidusarvude skaalat, vältides võimaluse korral vahemikust väljapoole jäävaid tulemusi.

Stohhastiline ümardamine

Teine erapooletu võrdsete häälte lahendamise meetod on stohhastiline ümardamine:

  • Kui y murdosa on 0,5, valige q juhuslikult y + 0,5 ja y - 0,5 hulgast võrdse tõenäosusega.

Nagu ka ümmargune-poolteist-paaris, on see reegel põhimõtteliselt vaba üldisest kallutatusest, kuid see on õiglane ka paaris- ja paaritu q väärtuste vahel. Teisest küljest lisab see tulemusse juhusliku komponendi; sama arvutust kaks korda samade andmetega tehes võib saada kaks erinevat tulemust. Samuti on see avatud alateadlikule eelarvamusele, kui inimesed (mitte arvutid või juhuslikud seadmed) otsustavad "juhuslikult", millises suunas ümardada.

Vahelduv tasavägine otsustamine

Üks meetod, mis on ebaselgem kui enamik, on ümmargune pool vaheldumisi.

  • Kui murdosa on 0,5, ümardage vaheldumisi üles- ja allapoole: 0,5 murdosa esimese esinemise korral ümardage ülespoole, teise esinemise korral allapoole ja nii edasi jne.

See summutab tulemuse juhusliku komponendi, kui 0,5 murdosa esinemisi saab tõhusalt nummerdada. Kuid see võib siiski tekitada positiivse või negatiivse kallutatuse vastavalt esimesele esinemisele määratud ümardamise suunale, kui esinemiste koguarv on paaritu.

Lihtne dithering

Mõnes kontekstis ei pruugi kõik eespool nimetatud ümardamismeetodid olla rahuldavad. Näiteks oletame, et y on audiosignaali täpne mõõtmine, mis ümardatakse täisarvuni q, et vähendada salvestus- või ülekandekulusid. Kui y muutub ajas aeglaselt, siis mis tahes ülaltoodud ümardamismeetodi tulemuseks on, et q on pikkade ajavahemike jooksul täiesti konstantne, mida eraldavad järsud hüpped ±1. Kui q-signaali taasesitada, on need sammud kuulda väga ebameeldiva müra kujul ja kõik algsignaali variatsioonid kahe täisarvulise väärtuse vahel lähevad täielikult kaduma.

Üks võimalus selle probleemi vältimiseks on ümardada iga väärtus y ülespoole tõenäosusega, mis on võrdne selle osaga, ja ümardada see allapoole selle tõenäosuse komplemendiga. Näiteks arv 23,17 ümardatakse üles 24-ni tõenäosusega 0,17 ja alla 23-ni tõenäosusega 1 - 0,17 = 0,83. (See on samaväärne ümardamisega y + s, kus s on juhuslik arv, mis on ühtlaselt jaotunud 0 ja 1 vahel). Selle erilise ümardamise, mida nimetatakse ditheringuks, abil asendatakse järsud sammud vähem häiriva müraga ja isegi väikesed erinevused algsignaalis säilivad mingil määral. Nagu ka stohhastilisel lähenemisviisil võrdsete arvude ümardamisele, ei ole ka ditheringil eelarvamusi: kui kõik murdarvud on võrdselt tõenäolised, on teatud summa võrra ülespoole ümardamine sama tõenäoline kui sama summa võrra allapoole ümardamine; ja sama kehtib ka mitme ümardatud arvu summa kohta. Teisest küljest lisab dithering tulemusse juhusliku komponendi, mis on palju suurem kui stohhastilise võrdsete arvude otsustamise puhul.

Täpsemalt öeldes on ümardamisviga iga ditherdatud arvu puhul ühtlaselt jaotunud juhuslik muutuja, mille keskmine väärtus on null, kuid mille standardhälve on 1/12 ≈ 0.2886 {\displaystyle 1/{\sqrt {12}}\approx 0.2886} {\displaystyle 1/{\sqrt {12}}\approx 0.2886}, mis on parem kui 1/2 standardhälve lihtsate prognoosimeetodite puhul, kuid veidi suurem kui lihtsama stohhastilise meetodi puhul. Samas on n ümardatud arvu summa juhuslik muutuja, mille oodatav viga on null, kuid mille standardhälve on n/12 {\displaystyle {\sqrt {n}}/{\sqrt {12}}} {\displaystyle {\sqrt {n}}/{\sqrt {12}}}(kogu ülejäänud müra), mis erineb poolkvadratiliselt ja võib muutuda kergesti tajutavaks, isegi kui ümardamisvea standardhälve valimi kohta on 1 / 12 n {\displaystyle 1/{\sqrt {12n}}}{\displaystyle 1/{\sqrt {12n}}}, mis läheneb aeglaselt poolkvadratiliselt nullile. Seega võib see juhuslik jaotus olla mõne rakenduse jaoks, mis ümardab palju andmeid, ikkagi liiga suur.

Mitmemõõtmeline dithering

See lihtsa dithering-meetodi variant ümardab väärtusi endiselt tõenäosusega, mis on võrdne selle osaga. Kuid selle asemel, et kasutada juhuslikku jaotust üksikute proovide ümardamiseks, summeeritakse iga ümardatud proovi puhul esinev ümardamisviga järgmiste ümbritsevate elementide puhul, mida tuleb võtta proovi või arvutada; see akumuleeritud väärtus lisatakse seejärel nende järgmiste proovide või arvutatud väärtuste väärtusele, mida tuleb ümardada, nii et muudetud väärtused võtavad seda erinevust arvesse, kasutades prognoosivat mudelit (nagu Floyd-Steinbergi dithering).

Muudetud väärtused ümardatakse seejärel ükskõik millise eespool nimetatud ümardamismeetodiga, kusjuures parimad on stohhastilised või dithering-meetodid: viimasel juhul on n ümardatud arvu summa endiselt juhuslik muutuja, mille oodatav viga on null, kuid mille suurepärane konstantne standardhälve on 1/12 {\displaystyle 1/{\sqrt {12}} {\displaystyle 1/{\sqrt {12}}}selle asemel, et lahkneda poolkvadraatiliselt, kui eraldiseisvaid valimeid diteeritakse; ja üldine keskmine ümardamisvea hälve ümardatud valimi kohta on 1 / ( n 12 ) {\displaystyle 1/(n{\sqrt {12}})}{\displaystyle 1/(n{\sqrt {12}})}, mis läheneb hüperboolselt nullile, kiiremini kui poolhüperboolse lähenemise korral, kui eraldiseisvaid valimeid diteeritakse.

Praktikas kasutatakse suure hulga proovivõtuandmete ümardamisel (näiteks heli-, pildi- ja videorenderdamisel) ümardamisvigade akumuleerimist kõige sagedamini koos lihtsa ennetava ümardamisega muudetud väärtuste suhtes (näiteks ümardamine nulli suunas), sest see säilitab siiski üldise keskmise ümardamisvea kõrvalekalde ja selle standardhälbe hüperboolse konvergentsi nulli suunas. Seda täiustust kasutatakse sageli pildi- ja audiotöötluses (eelkõige täpsete ümbermõõtmis- ja ühtlustamisoperatsioonide puhul, kus üksikute väärtuste lihtne tõenäosuslik ümardamine võib siiski tekitada tajutavat müra, mis on mõnikord isegi hullem kui moire-efektid, mis tekivad üksikute proovide suhtes rakendatavate lihtsate mitteprobjektiivsete ümardamismeetodite puhul).

Akumuleeritud ümardamisvigade efektiivne levik võib sõltuda ümardatavate andmete diskreetsest mõõtmest: kui võetakse proovid kahemõõtmelistest piltidest, sealhulgas värvilistest piltidest (mis lisavad värvitasandite diskreetse mõõtme), või kolmemõõtmelistest videotest (mis lisavad diskreetse ajamõõtme), või polüfoonilistest audioandmetest (kasutades aja ja kanali diskreetseid mõõtmeid), võib siiski olla eelistatav levitada seda viga eelistatud suunas või võrdselt mitmesse ortogonaalsesse mõõtmesse, näiteks vertikaalselt vs. horisontaalselt kahemõõtmeliste kujutiste puhul või paralleelselt värvikanalite puhul samas asukohas ja/või ajamärgiga ning sõltuvalt nende ortogonaalsete diskreetsete mõõtmete muudest omadustest (vastavalt tajumismudelile). Sellistel juhtudel võib kasutada mitut ümardamisvea akumulaatorit (vähemalt ühte iga diskreetse mõõtme kohta) või akumulaatorite (n-1)-dimensioonilist vektorit (või maatriksit).

Mõnel sellisel juhul võib valimi ja ümardatavate andmete diskreetseid mõõtmeid käsitleda mitteortogonaalselt: Näiteks värviliste piltidega töötades võib kolmekordse värvitasandi andmed igas füüsilises mõõtmes (kõrgus, laius ja valikuliselt aeg) ümber kaardistada, kasutades tajuvat värvimudelit, nii et ümardamisvea akumulaatorid on kavandatud nii, et heledust säilitatakse suurema tõenäosusega kui värvitooni või küllastust, selle asemel et levitada vigu igasse ortogonaalsesse värvitasandisse sõltumatult; ja stereofoonilistes heliandmetes võib kaks ümardatud andmekanalit (vasak ja parem) ümardada koos, et säilitada nende keskväärtus, eelistades nende tegelikku erinevust, mis neelab suurema osa ülejäänud ümardamisvigadest, tasakaalustatult nulli ümber.

Ümardamine lihtsate murdudega

Mõnes kontekstis on soovitav ümardada antud arv x "puhas" murd, st lähim murd z = m/n, mille lugeja m ja nimetaja n ei ületa antud maksimumi. See probleem erineb üsna selgelt sellest, kui ümardada väärtus kindla arvu kümnend- või kahendkümnendkohtadeni või antud ühiku m kordse väärtuseni. See probleem on seotud Farey jadade, Stern-Brocot'i puu ja jätkuvate murdudega.

Ümardamine skaala järgi

See ümardamise tüüp, mida nimetatakse ka logaritmilise skaala ümardamiseks, on ümardamise variant, kuid selle sammu suurus sõltub tulemuse skaalast ja suurusest. Konkreetselt on eesmärk piirata oluliste numbrite arvu, ümardades väärtust nii, et mitteolulised numbrid jäetakse välja. Seda tüüpi ümardamine toimub kaudselt piiratud täpsusega ujukomaarvudega arvude puhul (näiteks IEEE-754 float- ja double-tüübid), kuid seda võib kasutada üldisemalt mis tahes reaalväärtuste ümardamiseks, millel on mis tahes positiivne arv olulisi numbreid ja mis tahes rangelt positiivne reaalbaas.

Näiteks saab seda kasutada insenerigraafikas andmete esitamiseks logaritmilise skaala muutuvate sammudega (näiteks lainepikkused, mille alus ei pruugi olla täisarvuline), või statistilistes andmetes reaalväärtuste klasside määratlemiseks eksponentsiaalselt kasvava laiusega intervallides (kuid kõige sagedamini kasutatakse seda täisarvuliste alustega, näiteks 10 või 2). [allikas?]

Seda tüüpi ümardamine põhineb logaritmilisel skaalal, mis on määratletud fikseeritud mittenullist reaalosaga skaalafaktoriga s (kõige sagedamini on see faktor s=1) ja fikseeritud positiivse baasiga b>1 (mis ei pruugi olla täisarv ja on enamasti erinev skaalafaktorist) ning fikseeritud täisarvu n>0 olulistest numbritest selles baasis (mis määrab ümardamiseks kasutatava juurdekasvu väärtuse koos ümardatud arvu arvutatud efektiivse skaalaga).

Esmase argumendi arv (nagu ka saadud ümardatud arv) esitatakse kõigepealt eksponentsiaalses märkimisviisis x = s-a-m-bc, nii et märk s on kas +1 või -1, absoluutne mantissa a on piiratud pooleldi avatud positiivse intervalliga [1/b,1] ja eksponent c on mis tahes (positiivne või negatiivne) täisarv. Selles esituses on kõik olulised numbrid absoluutse mantissi murdosas, mille täisarvuline osa on alati null.

Kui algarv (või ümardatud arv) on 0, on absoluutne mantissa a määratletud kui 0, eksponent c on fikseeritud suvalisele väärtusele (enamikus konventsioonides 0, kuid mõnes ujukomaarvu esituses ei saa kasutada absoluutset mantissi nulli, vaid eksponendile c on reserveeritud konkreetne maksimaalne negatiivne väärtus, et kujutada arvu 0 ennast), ja märk s võib olla suvaliselt valitud vahemikus -1 või +1 (tavaliselt määratakse see +1 lihtsa nulli puhul või määratakse sama märk kui argumendi ümardatud väärtus, kui arvude esitus võimaldab eristada positiivseid ja negatiivseid nulle, isegi kui need esindavad lõpuks sama arvväärtust 0).

Samaväärselt võib kasutada ka skaleeritud eksponentsiaalset esitust x = a-s-bc, mille mantissa a on kas võrdne nulliga või jääb ühte kahest pooleldi avatud intervallist (-1,-1/b] ja [+1/b,+1]), ja seda kasutatakse ka järgnevas algoritmis.

Selle skaalaliseeritud ümardamise arvutamise sammud on üldiselt sarnased järgmisele:

  1. kui x on võrdne nulliga, siis lihtsalt tagastatakse x; vastasel juhul:
  2. teisendada x skaleeritud eksponentsiaalseks esitusviisiks koos mantissaga:
    x = a
    s b c {\displaystyle x=a\cdot s\cdot b^{c}\,} {\displaystyle x=a\cdot s\cdot b^{c}\,}
    1. olgu x' x-i mitteskaalutud väärtus, jagades selle skaalumisteguriga s:
      x ′ = x / s {\displaystyle x'=x/s\,}
      {\displaystyle x'=x/s\,} ;
    2. olgu skaalaeksponent c üks pluss x' absoluutväärtuse baas-b logaritm, ümardatuna täisarvuni (lõpmatuse suunas):
      c = 1 + ⌊ log b | x ′ | ⌋ = 1 + ⌊ log b | x / s | ⌋ {\displaystyle c=1+\left\lfloor \log _{b}\left|x'\right|\right\rfloor =1+\left\lfloor \log _{b}\left|x/s\right|right\rfloor \,}
      {\displaystyle c=1+\left\lfloor \log _{b}\left|x'\right|\right\rfloor =1+\left\lfloor \log _{b}\left|x/s\right|\right\rfloor \,} ;
    3. olgu mantiss a jagatuna b-ga potentsile c, mille tulemuseks on x' jagatuna b-ga:
      a = x ′
      b - c = x / s b - c {\displaystyle a=x'\cdot b^{-c}=x/s\cdot b^{-c}\,} {\displaystyle a=x'\cdot b^{-c}=x/s\cdot b^{-c}\,}
  3. arvutada ümardatud väärtus selles esituses:
    1. olgu c' x' algne skaleerumise eksponent c:
      c ′ = c {\displaystyle c'=c\,}
      {\displaystyle c'=c\,}
    2. Olgu m mantissi a ümardamise juurdekasv vastavalt säilitatavate oluliste numbrite arvule:
      m = b - n {\displaystyle m=b^{-n}\,}
      {\displaystyle m=b^{-n}\,}
    3. olgu a' mantissa a, mis on ümardatud vastavalt sellele sammule m ja valitud ümardamisrežiimile:
      a ′ = r o u n d ( a , m ) = r o u n d ( x / s
      b n - c ′ ) b - n {\displaystyle a'=\mathrm {round} (a,m)=\mathrm {round} (x/s\cdot b^{n-c'})\cdot b^{-n}\,} {\displaystyle a'=\mathrm {round} (a,m)=\mathrm {round} (x/s\cdot b^{n-c'})\cdot b^{-n}\,}
    4. kui a' absoluutväärtus ei ole väiksem kui b, siis vähendatakse n (korrutatakse juurdekasvu m b-ga), suurendatakse skaalaeksponenti c', jagatakse mantissat a b-ga ja alustatakse uuesti uue mantissi ümardamist a'ks sama valemiga; seda sammu võib vältida ainult siis, kui abtract "round()" funktsioon ümardab a alati 0 suunas (i.st kui tegemist on lihtsa kärpimisega), kuid see on vajalik, kui see võib ümardada a lõpmatuse suunas, sest ümardatud mantissal võib sel juhul olla suurem skaleeruv eksponent, mis jätab täpsuse lisakoha.
  4. tagastab ümardatud väärtuse:
    y = s c a l e d r o u n d ( x , s , b , n ) = a ′
    s b c ′ = r o u n d ( x / s b n - c ′ ) s b c ′ - n {\displaystyle y=\mathrm {scaledround} (x,s,b,n)=a'\cdot s\cdot b^{c'}=\mathrm {round} (x/s\cdot b^{n-c'})\cdot s\cdot b^{c'-n}\,} {\displaystyle y=\mathrm {scaledround} (x,s,b,n)=a'\cdot s\cdot b^{c'}=\mathrm {round} (x/s\cdot b^{n-c'})\cdot s\cdot b^{c'-n}\,}.

Abstraktse funktsiooni "round()" puhul võib selline ümardamine kasutada ükskõik millist järgmises jaotises põhjalikumalt kirjeldatud ümardamisrežiimi, kuid kõige sagedamini kasutatakse ümardamist lähimale (allpool on samuti põhjalikumalt kirjeldatud võrdsete arvude reegleid).

Näiteks:

  • 1.234 skaalutud ümardamine skaalafaktoriga 1 baasil 10 ja 3 olulise numbriga (maksimaalne suhteline täpsus = 1/1000), kui kasutatakse mis tahes ümardamisrežiimi, annab tulemuseks 1.23;
  • sarnane skaalaga ümardamine 1,236 annab tulemuseks 1,24;
  • sarnane 21,236-i ümardamine annab tulemuseks 21,2;
  • sarnane 321,236-i ümardamine annab tulemuseks 321;
  • skaalutud ümardamine 1,234 skaalafaktoriga 1 baasil 10 ja 3 olulise numbriga (maksimaalne suhteline täpsus = 1/1000), kui kasutatakse ümardamisrežiimi, annab tulemuseks 1,23;
  • sarnane skaalutud ümardamine 1,236 annab samuti tulemuseks 1,23;
  • 3 π / 7 ≈ 6,8571 π 2 - 4 {\displaystyle \scriptstyle 3\pi /7\;\approx \;6.8571 \cdot \pi \cdot 2^{-4}}{\displaystyle \scriptstyle 3\pi /7\;\approx \;6.8571\cdot \pi \cdot 2^{-4}} skaalumisteguriga π {\displaystyle \scriptstyle \pi }{\displaystyle \scriptstyle \pi } baasil 2 ja 3 olulise numbriga (maksimaalne suhteline täpsus = 1/8), kui kasutatakse ümardamisrežiimi, annab tulemuseks 6 π 2 - 4 = 3 π / 8 {\displaystyle \scriptstyle 6\cdot \pi \cdot 2^{-4}\;=\;3\pi /8}}{\displaystyle \scriptstyle 6\cdot \pi \cdot 2^{-4}\;=\;3\pi /8} ;
  • sarnane skaleeritud ümardamine 5 π / 7 ≈ 5,7143 π 2 - 3 {\displaystyle \scriptstyle 5\pi /7\;\approx \;5.7143\cdot \pi \cdot 2^{-3}}{\displaystyle \scriptstyle 5\pi /7\;\approx \;5.7143\cdot \pi \cdot 2^{-3}} annab tulemuseks 5 π 2 - 3 = 5 π / 8 {\displaystyle \scriptstyle 5\cdot \pi \cdot 2^{-3}\;=\;5\pi /8}}{\displaystyle \scriptstyle 5\cdot \pi \cdot 2^{-3}\;=\;5\pi /8} ;
  • sarnane skaleeritud ümardamine π / 7 ≈ 4,5714 π 2 - 5 {\displaystyle \scriptstyle \pi /7\;\approx \;4.5714\cdot \pi \cdot 2^{-5}}{\displaystyle \scriptstyle \pi /7\;\approx \;4.5714\cdot \pi \cdot 2^{-5}} annab tulemuseks 4 π 2 - 5 = π / 8 {\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-5}\;=\;\pi /8}}{\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-5}\;=\;\pi /8} .
  • sarnane skaalutud ümardamine π / 8 = 4 π 2 - 5 {\displaystyle \scriptstyle \pi /8\;=\;4\cdot \pi \cdot 2^{-5}}{\displaystyle \scriptstyle \pi /8\;=\;4\cdot \pi \cdot 2^{-5}} annab samuti 4 π 2 - 5 = π / 8 {\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-5}\;=\;\pi /8}}{\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-5}\;=\;\pi /8} .
  • sarnane skaleeritud ümardamine π / 15 ≈ 4,2667 π 2 - 6 {\displaystyle \scriptstyle \pi /15\;\approx \;4.2667\cdot \pi \cdot 2^{-6}}{\displaystyle \scriptstyle \pi /15\;\approx \;4.2667\cdot \pi \cdot 2^{-6}} annab tulemuseks 4 π 2 - 6 = π / 16 {\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-6}\;=\;\pi /16} } {\displaystyle \scriptstyle 4\cdot \pi \cdot 2^{-6}\;=\;\pi /16}.

Ümardada olemasoleva väärtuseni

Valmis saematerjali, kirjapaberit, kondensaatoreid ja paljusid muid tooteid müüakse tavaliselt ainult mõnes standardsuuruses.

Paljudes projekteerimismenetlustes kirjeldatakse, kuidas arvutada ligikaudne väärtus ja seejärel "ümardada" mingi standardsuuruseni, kasutades selliseid väljendeid nagu "ümardada lähima standardväärtuseni", "ümardada lähima standardväärtuseni" või "ümardada lähima standardväärtuseni".

Kui eelistatud väärtuste kogum on logaritmilisel skaalal võrdselt paigutatud, võib eelistatud väärtusele lähima eelistatud väärtuse valimist vaadelda kui omamoodi skaleeritud ümardamist. Selliseid "ümardatud" väärtusi saab otseselt arvutada.

Ujumispunkti ümardamine

Ujukomaarvutuse puhul on ümardamise eesmärk muuta antud väärtus x väärtuseks z, millel on kindel arv olulisi numbreid. Teisisõnu, z peaks olema arvu m kordne, mis sõltub arvu z suurusest. Arv m on ujukomaarvu baasi (tavaliselt 2 või 10) potenss.

Peale selle detaili kehtivad kõik eespool käsitletud ümardamise variandid ka ujukomaarvude ümardamise puhul. Sellise ümardamise algoritm on esitatud eespool punktis "Ümardamine skaalaga", kuid konstantse skaalumisteguriga s=1 ja täisarvu baasiga b>1.

Tulemuste puhul, mille puhul ümardatud tulemus oleks ülevoolav, on tulemus suunatud ümardamise korral kas sobiv lõpmatus või suurim esitatav positiivne piiratud arv (või väikseim esitatav negatiivne piiratud arv, kui x on negatiivne), sõltuvalt ümardamise suunast. Tavapärase ümardamise korral on ülevoolu tulemus alati sobiv lõpmatus.

Lisaks sellele, kui ümardatud tulemus oleks allavoolav, st. kui eksponent ületaks väikseimat esitatavat täisarvu väärtust, võib tegelik tulemus olla kas null (võimalik, et märgiga, kui esitus suudab säilitada nullide märkide eristamise) või väikseim esitatav positiivne lõplik arv (või suurim esitatav negatiivne lõplik arv, kui x on negatiivne), võimalik, et denormaalne positiivne või negatiivne arv (kui mantissas on salvestatud kõik selle olulised numbrid), siis on tulemuseks kas null (võimalik, et märgiga, kui esitus suudab säilitada nullide märkide eristamise) või väikseim esitatav positiivne lõplik arv (või suurim esitatav negatiivne lõplik arv, kui x on negatiivne), sellisel juhul võib kõige olulisemat numbrit ikkagi salvestada madalamale positsioonile, seades kõrgeima salvestatud numbri nulliks, ja see salvestatud mantissa ei jäta kõige olulisemat numbrit maha, mis on võimalik, kui baas b=2, sest kõige olulisem number on selles baasis alati 1), sõltuvalt ümardamise suunast. Alavoolu tulemuseks on tavalisel juhul, kui ümardatakse paariliseks, alati vastav null.

Topelt ümardamine

Kui arvu ümardatakse kaks korda järjest erineva täpsusega, kusjuures viimane täpsus on jämedam, ei ole tagatud, et see annab sama tulemuse kui ühekordne ümardamine lõpliku täpsusega, välja arvatud juhul, kui tegemist on suunatud ümardamisega. Näiteks 9,46 ümardamine ühe kümnendikuni annab tulemuseks 9,5 ja seejärel 10, kui ümardada täisarvuks, kasutades ümardamist pooleni, kuid otse täisarvuks ümardades annaks tulemuseks 9.

Mõned arvutikeeled ja standard IEEE 754-2008 dikteerivad, et lihtsates arvutustes ei tohiks tulemust kaks korda ümardada. See on olnud eriline probleem Java puhul, kuna see on mõeldud erinevatel masinatel ühesuguse tulemuse saavutamiseks, x87 ujukomaja puhul on tulnud kasutada spetsiaalseid programmeerimistrikke, et seda saavutada. Java keelt muudeti, et lubada erinevaid tulemusi, kui erinevus ei ole oluline, ja nõuda "strictfp" kvalifitseerija kasutamist, kui tulemused peavad täpselt vastama.

Täpne arvutamine ümardatud aritmeetikaga

Diskreetse domeeni ja vahemikuga funktsiooni täpse väärtuse hindamiseks on võimalik kasutada ümardatud aritmeetikat. Näiteks kui me teame, et täisarv n on täiuslik ruut, saame arvutada selle ruutjuure, teisendades n ujukomaarvuks x, arvutades ujukomaarvuga x ligikaudse ruutjuure y ja seejärel ümardades y lähima täisarvuni q. Kui n ei ole liiga suur, on ujukomaarvu ümardamisviga y-s väiksem kui 0,5, nii et ümardatud väärtus q on n täpne ruutjuur. Enamikus moodsates arvutites võib see meetod olla palju kiirem kui n ruutjuure arvutamine kõikehõlmava algoritmi abil.

Lauategija dilemma

William Kahan mõtles välja termini "tabelitegija dilemma", mis tähistab tundmatuid kulusid, mis kaasnevad transtsendentsete funktsioonide ümardamisega:

"Keegi ei tea, kui palju maksaks y^w korrektselt ümardatuna arvutada iga kahe ujukomaargumendi kohta, mille juures ei toimu üle-/allavoolu. Selle asemel arvutavad mainekad matemaatikaraamatukogud elementaarseid transtsendentaalseid funktsioone enamasti veidi rohkem kui poole ulp-i piires ja peaaegu alati hästi ühe ulp-i piires. Miks ei saa Y^W ümardada poole ulp-i piires nagu SQRT? Sest keegi ei tea, kui palju arvutusi see maksaks... Ei ole olemas mingit üldist võimalust ennustada, mitu lisakohta tuleb kanda, et arvutada transtsendentaalne avaldis ja ümardada see korrektselt mingi etteantud arvu numbriteni. Isegi asjaolu (kui see on tõsi), et lõppkokkuvõttes piisab piiratud arvust lisakohtadest, võib olla sügav teoreem."

IEEE ujukoma standard tagab, et liitmine, lahutamine, korrutamine, jagamine, ruutjuur ja ujukoma jääk annavad lõpmatu täpsusega operatsiooni korrektselt ümardatud tulemuse. Keerulisemate funktsioonide puhul sellist garantiid siiski ei anta ja need on tavaliselt täpsed parimal juhul ainult viimase bitini.

Kasutades Gelfond-Schneider'i teoreemi ja Lindemann-Weierstrassi teoreemi, saab tõestada, et paljud standardsed elementaarfunktsioonid annavad transtsendentsed tulemused, kui neile antakse ratsionaalsed mittenullargumendid; seega on alati võimalik selliseid funktsioone õigesti ümardada. Kuid piirväärtuse määramine antud täpsuse jaoks, kui täpseid tulemusi tuleb arvutada, enne kui saab tagada korrektselt ümardatud tulemuse, võib nõuda palju arvutusaega.

Praegu on olemas mõned paketid, mis pakuvad täielikku täpsust. MPFR-pakett annab korrektselt ümardatud suvalise täpsusega tulemusi. IBM on kirjutanud kiire ja täpse IEEE elementaarfunktsiooni paketi ja tulevikus võivad standardraamatukogud pakkuda sellist täpsust.

On võimalik välja töötada hästi defineeritud arvutatavad arvud, mida ei pruugi kunagi olla võimalik õigesti ümardada, ükskõik kui palju numbreid ka ei arvutataks. Näiteks kui Goldbachi oletus on tõene, kuid tõestamatu, siis on võimatu õigesti ümardada 0,5 + 10-n, kus n on esimene 4-st suurem paariline arv, mis ei ole kahe algarvu summa, või 0,5, kui sellist arvu ei ole. Seda saab siiski lähendada mis tahes täpsusega, isegi kui oletus on tõestamatu.

Ajalugu

Ümardamise mõiste on väga vana, võib-olla isegi vanem kui jagamise mõiste. Mõned Mesopotaamiast leitud iidsed savitahvlid sisaldavad tabeleid, kus on ümardatud pöördväärtused ja ruutjuured baasil 60. Ka π, aasta pikkuse ja kuu pikkuse ümardatud lähendused on iidsed.

Ümberpööratud meetod on olnud ASTM-i (E-29) standardiks alates 1940. aastast. Mõistete "erapooletu ümardamine" ja "statistiline ümardamine" päritolu on üsna iseenesestmõistetav. Raamatus "Probability and Theory of Errors" (1906) nimetas Robert Simpson Woodward seda "arvuti reegliks", viidates sellele, et see oli tollal üldkasutatav matemaatilisi tabeleid arvutavate inimarvutite poolt. Churchill Eisenharti 1947. aasta kirjutis "Effects of Rounding or Grouping Data" (teoses Selected Techniques of Statistical Analysis, McGrawHill, 1947, Eisenhart, Hastay ja Wallis, toimetaja) näitas, et see tava oli andmeanalüüsis juba "hästi juurdunud".

Mõiste "pankurite ümardamine" päritolu jääb rohkem varju. Kui see ümardamismeetod oli kunagi panganduses standard, siis on tõendeid selle kohta äärmiselt raske leida. Vastupidi, Euroopa Komisjoni aruande "The Introduction of the Euro and the Rounding of Currency Amounts" (Euro kasutuselevõtt ja rahasummade ümardamine) 2. jagu viitab sellele, et panganduses ei olnud varem standardset ümardamismeetodit, ja selles täpsustatakse, et "pooleldi" summad tuleks ümardada ülespoole.

Kuni 1980. aastateni oli ujukomaarvutite aritmeetikas kasutatav ümardamismeetod tavaliselt riistvara poolt fikseeritud, halvasti dokumenteeritud, ebajärjekindel ja iga arvutimargilt ja -mudelilt erinev. Olukord muutus pärast seda, kui enamik arvutitootjaid võttis kasutusele IEEE 754 ujukomaarvutuse standardi. Standard võimaldab kasutajal valida mitme ümardamisviisi vahel ning määrab igal juhul täpselt kindlaks, kuidas tulemusi ümardada. Need omadused muutsid arvutusarvutused prognoositavamaks ja masinast sõltumatumaks ning võimaldasid intervallaritmeetika tõhusat ja järjepidevat rakendamist.

Ümardamisfunktsioonid programmeerimiskeeltes

Enamik programmeerimiskeeli pakub funktsioone või spetsiaalset süntaksit murdarvude ümardamiseks erinevatel viisidel. Varasemad arvkeeled, nagu FORTRAN ja C, pakkusid ainult ühte meetodit, tavaliselt kärpimist (nulli suunas). Seda vaikimisi meetodit võis kasutada teatavates kontekstides, näiteks kui murdarvu omistatakse täisarvu muutujale või kui murdarvu kasutatakse massiivi indeksina. Muud ümardamisviisid tuli programmeerida selgesõnaliselt; näiteks positiivse arvu ümardamist lähima täisarvuni võis rakendada 0,5 lisamise ja kärpimise teel.

Viimastel aastakümnetel on aga enamiku keelte süntaks ja/või standardraamatukogud tavaliselt pakkunud vähemalt nelja põhilist ümardamisfunktsiooni (üles/üles, alla/alla, lähimale ja nullile). Võrdsuse katkestamise meetod võib sõltuvalt keelest ja versioonist erineda ja/või olla programmeerija poolt valitav. Mitmed keeled järgivad IEEE-754 ujukomaarvu standardit ja määratlevad need funktsioonid nii, et need võtavad topelt-täpsusega ujukomaarvu argumendi ja tagastavad sama tüüpi tulemuse, mille võib seejärel vajaduse korral teisendada täisarvuks. Kuna IEEE kahekordse täpsusega formaadis on 52 murdbitti, võib selline lähenemine vältida valesid ülevoolamisi keeltes, kus on 32-bitised täisarvud. Mõned keeled, näiteks PHP, pakuvad funktsioone, mis ümardavad väärtuse kindlaksmääratud arvu kümnendkohtadeni, näiteks 4321,5678-st 4321,57-ni või 4300-ni. Lisaks pakuvad paljud keeled "printf" või sarnast stringi vormindamise funktsiooni, mis võimaldab teisendada murdarvu stringiks, mis on ümardatud kasutaja poolt määratud arvu kümnendkohtadeni (täpsus). Teisest küljest on kärpimine (ümardamine nullini) endiselt paljudes keeltes kasutatav vaikimisi ümardamismeetod, eriti kahe täisarvu jagamisel.

Vastupidi, CSS ja SVG ei määratle numbrite ja mõõtude jaoks mingit konkreetset maksimaalset täpsust, mida käsitletakse ja avalikustatakse nende dokumendiobjektimudelis ja nende liidese kirjeldava keele liideses stringidena, nagu oleks neil lõpmatu täpsus, ning ei tee vahet täisarvude ja ujukomaarvude vahel; nende keelte rakendused teisendavad need numbrid tavaliselt IEEE-754 topelt ujukomaarvudeks, enne kui arvutatavad arvud piiratud täpsusega avalikustatakse (eelkõige standardses Javascriptis või ECMAScripti liidese sidemetes).

Muud ümardamisstandardid

Mõned erialad või institutsioonid on välja andnud ümardamisstandardid või -juhised.

USA ilmavaatlused

1966. aasta keskel välja antud juhendis määras Ameerika Ühendriikide meteoroloogia koordinaatori büroo, et ilmaandmed tuleks ümardada lähima ümmarguse arvuni, kasutades "ümardamise poole ülespoole" reeglit. Näiteks 1,5 ümardatuna täisarvuks peaks saama 2 ja -1,5 peaks saama -1. Enne seda kuupäeva oli võrdsete arvude otsustamise reegliks "ümardamine poole võrra nullist eemale".

Negatiivne null meteoroloogias

Mõned meteoroloogid võivad kirjutada "-0", et näidata temperatuuri vahemikus 0,0 kuni -0,5 kraadi (erandina), mis on ümardatud täisarvuks. Seda märkust kasutatakse siis, kui negatiivset märki peetakse oluliseks, olenemata sellest, kui väike on suurus; näiteks temperatuuride ümardamisel Celsiuse skaalal, kus alla nulli tähendab külmumist. []

Seotud leheküljed

Küsimused ja vastused

K: Mida tähendab sõna "ümardamine"?


V: Ümardamine on arvväärtuse asendamine teise arvuga, mis on ligikaudu võrdne, kuid millel on lühem, lihtsam või selgem vorm.

K: Mis on näide ümardamisest?


V: Ümardamise näide on näiteks 23,74 USA dollari ümardamine 24 USA dollarini, murdosa 312/937 ümardamine 1/3-ni ja väljendi 2 {\displaystyle {\sqrt {2}} ümardamine 1,41-ni.

K: Miks me ümardame arvud?


V: Me ümardame arvud, et saada väärtus, mida on lihtsam kirjutada ja käsitleda kui algset. Seda võib teha ka selleks, et näidata arvutatud arvu täpsust.

K: Millised on mõned võimalikud probleemid ümardamisega?


V: Ümardamine võib tulemuseks olla mõningane ümardamisviga ja teatud juhtudel võib see muuta tulemuse mõttetuks, kuna arvutustes kogunevad vead aja jooksul. Lisaks võib transtsendentaalsete matemaatiliste funktsioonide täpne ümardamine olla keeruline, sest ei ole võimalik teada, mitu lisakohta on vaja arvutada, et eelnevalt otsustada, kas ümardada üles- või allapoole.

K: Kuidas on ümardamine seotud kvantifitseerimisega?


V: Ümardamisel on palju sarnasusi kvantimisega, mis toimub siis, kui füüsikalised suurused tuleb kodeerida numbritega või digitaalsignaalidega.

AlegsaOnline.com - 2020 / 2023 - License CC3