亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        高精度加法的輸入及處理方式淺析

        2016-05-10 08:59:34趙心龍
        新課程·下旬 2016年3期
        關(guān)鍵詞:字符串數(shù)組高精度

        趙心龍

        摘 要:利用計(jì)算機(jī)進(jìn)行數(shù)值運(yùn)算,經(jīng)常會(huì)遇到數(shù)值太大的情況,有時(shí)又會(huì)遇到對(duì)運(yùn)算的精度要求特別高的情況。針對(duì)這些情況,都要用“高精度運(yùn)算”來(lái)解決,下面以加法為例簡(jiǎn)要分析高精度運(yùn)算的輸入及處理方式。

        關(guān)鍵詞:高精度;數(shù)組;字符串

        利用計(jì)算機(jī)進(jìn)行數(shù)值運(yùn)算,經(jīng)常會(huì)遇到數(shù)值太大,超出Longint、int64等系統(tǒng)標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型的有效范圍;有時(shí)又會(huì)遇到對(duì)運(yùn)算的精度要求特別高的情況,如計(jì)算圓周率π,要求精確到小數(shù)點(diǎn)后100位,此時(shí)real、double等數(shù)據(jù)類(lèi)型也無(wú)能為力了。針對(duì)這些情況,就需要用“高精度運(yùn)算”來(lái)解決。

        高精度數(shù)據(jù)的讀入可以采用兩種方法,一是一位一位讀入并存儲(chǔ)到數(shù)組中;二是采用字符串方式讀入,再逐位處理成數(shù)字存儲(chǔ)在數(shù)組中。在實(shí)際使用時(shí),按大家習(xí)慣可以選擇不同的處理方式。高精度運(yùn)算一般都是采用模擬的方法解決,所以輸入時(shí)一定要注意按位對(duì)齊。

        一、采用數(shù)組方式讀入,按數(shù)組進(jìn)行運(yùn)算

        定義存儲(chǔ)數(shù)組:var p:array[1..n] of integer;

        代碼一:read(ch);

        k:=0;

        while ch in[‘0..‘9] do //讀入數(shù)組

        begin

        inc(k);

        p[k]:=ord(ch)-48;

        read(ch);

        end;

        read(ch)將數(shù)據(jù)一位一位讀入。k初值為零,且循環(huán)過(guò)程中遞增,p[1]至p[k]依次存儲(chǔ)數(shù)據(jù)的高位至低位。

        代碼二:for i:=k downto 1 do //處理數(shù)組,使數(shù)據(jù)按位右對(duì)齊

        begin

        p[n+i-k]:=p[i];

        p[i]:=0;

        end;

        p[n+i-k]:=p[i]將整個(gè)數(shù)組向后平移,最后一位移至p[n],第一位移至p[n+1-k],使參與運(yùn)算的數(shù)據(jù)按位右對(duì)齊。

        代碼二在代碼一的基礎(chǔ)上,經(jīng)過(guò)處理后,兩個(gè)高精度數(shù)低位對(duì)齊,符合我們做加法、減法、乘法的運(yùn)算習(xí)慣。

        二、采用字符串方式讀入,轉(zhuǎn)換成數(shù)組運(yùn)算

        定義字符串:var sa,sb:string;數(shù)據(jù)類(lèi)型string定義的字符串長(zhǎng)度為0-255,如果輸入更長(zhǎng)的字符串,可以將字符串定義為無(wú)限字符串a(chǎn)nsistring。

        用字符串方式讀入兩個(gè)高精度數(shù),readln(sa);readln(sb);

        計(jì)算出每個(gè)字符串的長(zhǎng)度,la:=length(sa); lb:=length(sb);

        代碼三: for i:=1 to la do a[i]:=ord(sa[la+1-i])-48;

        for i:=1 to lb do b[i]:=ord(sb[lb+1-i])-48;

        字符‘0的ASSCⅡ碼是48,ord( )函數(shù)的作用是將字符轉(zhuǎn)換成數(shù)值,例如輸入的字符‘8,通過(guò)ord(8)-48可以將字符‘8轉(zhuǎn)換成與之等價(jià)的數(shù)值,即字符‘8轉(zhuǎn)換成數(shù)字8。通過(guò)下標(biāo)的變化a[i]:=ord(sa[la+1-i])-48,將輸入的字符串‘12345轉(zhuǎn)換成數(shù)組a,每一位數(shù)值存儲(chǔ)順序恰與數(shù)組a的下標(biāo)相反,其中a[1]=5,a[2]=4,a[3]=3,a[4]=2,[5]=1。

        以上過(guò)程是把兩個(gè)高精度數(shù)逐位處理并轉(zhuǎn)存到a、b兩個(gè)數(shù)組中,數(shù)組下標(biāo)從1開(kāi)始存儲(chǔ)數(shù)的低位。這種讀入的方法利用了字符串的性質(zhì),符合人們讀數(shù)的習(xí)慣,但計(jì)算時(shí)需要將字符串轉(zhuǎn)換成數(shù)組。a[i]:=ord(sa[la+1-i])-48中sa的下標(biāo)可以根據(jù)自己的習(xí)慣靈活處理。

        三、采用字符串方式讀入,直接進(jìn)行運(yùn)算

        代碼四:

        while length(sa)>length(sb)do sb:=‘0+sb;

        while length(sb)>length(sa)do sa:=‘0+sa;

        比較讀入的兩個(gè)字符串長(zhǎng)度,通過(guò)在字符串前加‘0的方式將兩個(gè)字符串長(zhǎng)度補(bǔ)齊,其原理是在數(shù)的高位添加0而不影響數(shù)的大小。在運(yùn)算處理方面,我們可以通過(guò)字符串的下標(biāo)如sa[i]訪問(wèn)字符串中的單個(gè)字符,然后將字符轉(zhuǎn)換成數(shù)值進(jìn)行運(yùn)算。

        高精度運(yùn)算的首要問(wèn)題是讀入方式和存儲(chǔ)方式的轉(zhuǎn)換,方式一時(shí)間復(fù)雜度O(n);方式二時(shí)間復(fù)雜度O(length(s)),如果兩個(gè)字符串的長(zhǎng)度差大,此方式優(yōu)于方式一;方式三時(shí)間復(fù)雜度O(|length(sa)-length(sb)|),如果兩個(gè)字符串的長(zhǎng)度差小,此方式優(yōu)于方式一。雖然方式二、三在某些情形下優(yōu)于方式一,但與人的邏輯習(xí)慣不符,所以這幾種方法可以靈活運(yùn)用。

        參考文獻(xiàn):

        [1]吳再陵.全國(guó)青少年信息學(xué)奧林匹克聯(lián)賽培訓(xùn)教材[M].南京大學(xué)出版社,2006.

        [2] 狄光智,趙同林.數(shù)組實(shí)現(xiàn)高精度計(jì)算的方法研究[J].電腦編程技巧與維護(hù),2009(10).

        編輯 姚曉媛

        猜你喜歡
        字符串數(shù)組高精度
        JAVA稀疏矩陣算法
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        高抗擾高精度無(wú)人機(jī)著艦縱向飛行控制
        船載高精度星敏感器安裝角的標(biāo)定
        基于高精度測(cè)角的多面陣航測(cè)相機(jī)幾何拼接
        高精度免熱處理45鋼的開(kāi)發(fā)
        山東冶金(2015年5期)2015-12-10 03:27:41
        尋找勾股數(shù)組的歷程
        一種新的基于對(duì)稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        VB數(shù)組在for循環(huán)中的應(yīng)用
        考試周刊(2012年88期)2012-04-29 04:36:47
        成片免费观看视频大全| 精品国产一区二区三区a| 日本久久伊人特级黄色| 两个人看的www免费视频中文| 国产午夜成人久久无码一区二区 | 99久久久精品免费| 久久国产精品免费一区二区三区| 国产乱人伦av在线麻豆a| 欧美怡红院免费全部视频| 亚洲人成精品久久久久| 国产自产在线视频一区| 亚洲在线视频免费视频| ā片在线观看免费观看 | h视频在线播放观看视频| 中文字幕肉感巨大的乳专区| 欧美视频在线观看一区二区| 少妇极品熟妇人妻高清| 熟女中文字幕一区二区三区| 孕妇特级毛片ww无码内射| 一级片久久| 色婷婷精久久品蜜臀av蜜桃| 国产高清成人在线观看视频| 福利体验试看120秒| 欧美精品aaa久久久影院| 日韩一区二区中文天堂| 成年性生交大片免费看| av网站免费线看| 亚洲精品日本久久久中文字幕| 富婆猛男一区二区三区| 欧美大屁股xxxx| 天天插视频| 一本色道久久88加勒比—综合| 天天爽夜夜爽人人爽| 久久久久亚洲av无码网站| 久草久热这里只有精品| 熟妇高潮一区二区三区在线观看| 日本丰满熟妇bbxbbxhd| 日韩毛片久久91| 精品一区二区三区婷婷| 日本高清视频www| 亚洲一区二区欧美色妞影院|