㈠ 演算法設計與分析問題。
道理上:12345678*12345678 結果有15位,但單精度浮點的有效位為7位,也就是只有結果的高7或8位是有效的。也就是說你的兩個算式中前者會損失精度。
但:經pascal語言或fortran語言驗證,兩者的結果相同。
fortran程序:
doubleprecisiona,b,x,y
a=12345678.0
b=87654321.0
x=a*a/b
y=a/b*a
write(*,*)x,y
stop
end
MicrosoftFORTRAN77V3.31August1985
(C)CopyrightMicrosoftCorp1982,1983,1984,1985
PassOneNoErrorsDetected
8SourceLines
CodeAreaSize=#00D2(210)
ConsAreaSize=#0014(20)
DataAreaSize=#003C(60)
PassTwoNoErrorsDetected.
Microsoft8086ObjectLinker
Version3.02(C)CopyrightMicrosoftCorp1983,1984,1985
1738827.764332500000001738827.76433250000000
Stop-Programterminated.
㈡ 《計算機演算法設計與分析》到底是學什麼,到底是在
計算機演算法設計與分析的課程,主要是學習計算機裡面的數據如何組織,如何進行處理,很多都是前輩總結的經驗。
㈢ 計算機演算法設計與分析怎麼樣
這本書作為這個學期的演算法課教材,這才讓我有機會看了下此書,剛看的時候,雲里來霧里去的,看完後,更是無奈。不明白為什麼這樣的書會作為教材,毫無道理。原因如下: 1.書中所講內容大部分出自演算法導論和Levitin的演算法設計與分析基礎(見P86頁講貪心演算法用做舉例的找零問題中的二角五分硬幣,當時看到二角五分硬幣就瞬間無語了.....因為只有米國才有25分的硬幣 = =),有些地方讓人感覺是刪減後照搬過來的,因此讀起來特別費勁,自覺愚鈍,跟不上作者跳躍的思維。 2.講的東西難度適中,當是表達方式實際上給讀者增加了難度。書中經常用a[],b[]這樣的名字來命名所需的數據結構,可見作者絲毫沒有用心在寫書,根本不為讀者著想,無力形式化描述使讀起此書頗有難度。 3.最關鍵的在於書中的演算法代碼。沒有採用偽代碼而採用c++實現本身沒什麼問題,但是代碼的風格實在是不敢恭維。從變數命名上多採用s,k,r之類讓人無語的名字,根本無法清晰表達變數的意思,而且要命的大部分演算法只有很少的注釋或者根本沒有,注釋固然不能太多,但那也是建立在代碼能自文檔化的基礎上的,面對這樣的代碼,只能搖頭。除此之外,書中代碼還出現風格不統一的情況,關於花括弧的使用,一會是K&R風格,一會是懸掛式風格,有時乾脆兩種風格混在同一段代碼中,及其容易誤導他人,使其養成不良的代碼風格。 綜上,要是學演算法的話,這本書並不是很理想,我覺得Levitin的那本演算法設計與分析基礎不錯,而這本只能算不是教材的教材吧.