為什麼兩種演算法,結果不一樣,與演算法,C語言有關 為什麼兩個結果不一樣

2021-03-19 18:38:05 字數 1601 閱讀 1213

1樓:講道理我不黑

你考慮過第二種解的2代個數問題嗎??????

aa能產4個仔,aa和aa就只能產一個?

與演算法,c語言有關 為什麼兩個結果不一樣

2樓:聽不清啊

這是因為,他所說的程式中,是採用了單精度型浮點數float。這種型別的資料可以表示比較大或者比較小的數,但是隻能保證七位有效數字。,就像我們說某個城市人口有1000萬。

也就是十的七次方。但是如果這個城市新生了一個嬰兒,我們說這個城市的人口還是7000萬。這個例子說明就是我們所說的7000萬,他並不是準確到個位數。

預設情況下,只是準確到萬位數。所以,當單精度數十的七次方加以以後,她還是十的七次方。如果再減去十的七次方,那麼他就等於零了。

反過來,如果十的七次方先減去十的七次方就等於零,再加上一,他的答案就是一。

我那裡算錯了?這兩種演算法有什麼區別?為什麼得數不一樣啊

3樓:匿名使用者

lz您好

這個是基礎的「有效數字問題」

如果您的√3不是取1.7,而是取1.73或者1.732,你會發現兩個計算的結果分別是381.5/380.6和381.1/381.0

很顯然比你的388/374的差距小很多。

之所以會這樣,這是因為你在分子有理化的時候,乘了一遍√3,這個操作對無理數分母有理化來說是天經地義的,但是對於有理數這個操作當然是莫名其妙的。但不巧的是,你把√3當做了有理數,而且還是1.7這種精確度0.

1的……

要是還不理解,您看看,剔除√3的部分,剩下的「係數」變化前是660,變化後是220,變了3倍,那是因為你除去了3,而這個3**於你有理化過程乘了√3,和原本就在的分母√3而變出來的。

現在你令√3=1.7,而1.7x1.7=2.89而已啊。

這件事情順便告訴我們一個道理【老師可能沒說,但是以後物理,化學,生物等等實驗都會用到一條】:

任何計算過程,計算過程所取數值都應比結果至少多1位有效數字。如果乘除法,可能還要額外多取1位。

4樓:天使的星辰

因為根號3≠1.7只是約等於

1.7≠3/1.7

220*1.7≠660/1.7

所以要先有理化在求值,220*1.7是正確答案

5樓:轉世王守仁

因為近似,你分母有理化的時候乘的是3不是2.89

來自一個無聊的熱心網友

這兩個演算法到底哪個是對的?為什麼結果不一樣?

6樓:就捨不得你

這個算式的答案是第二種。以下是解釋原因

首先,第二種解法是按部就班的,按照平方的公式一步一步算下來的,我也檢查了一下,答案和演算法都是正確無誤的。

第一種為什麼解出來的答案不對呢?因為你這種簡便的方法是不對的。

(x2-x+3)2的解法不能按照你寫的這樣,平方去括號不能這麼去,(a+b)2=a2+2ab+b2,而不是a2+b2。所以你這一步算錯了,導致最後得出的結果也相差很多。

7樓:鬼伯爵

字寫的不好看的那個,第一步已經錯了

如何區別這兩題為什麼演算法不一樣

第一題算出周長後再除上間距。第二題有多種可能性,因為可能一棵樹,在兩邊的交點上,這種情況下,如果四個交點都有這樣的樹,那用每條邊這樣計算的話會多四棵,需要減掉。如果都沒有,那就正常的三十六棵。結果在三十二到三十六之間 兩道題感覺題目一樣,為什麼演算法相差這麼大?這是因為第一題只讓計算 時確認的投資收...

C 資料結構與演算法,不一樣的fibonacc(斐波那契)數列

a,b定下來之後,f n 其實只和f n 1 和f n 2 相關了,而這裡又對2013取模,那麼f n 的範圍為0 2012,而f n 1 和f n 2 的組合有2013 2013種,比如123,234,那麼只需要找到這樣的迴圈節即可,比如f n 最終為 34,35,65,78,45,34,35 之...

HBV DNA的檢查結果為什麼不一樣? 乙肝

孟大夫 您好!最近,我用羅氏進口試劑又做了一次hbv dna檢查,結果是 9.91e 2,單位 iu ml,檢測下限 12iu ml。我小三陽20多年,10年前發現肝功能不正常,alt最高到過90 參考值 0 50 估計與我當時飲酒和工作勞累有關。從那時起再不喝酒了,又用了些保肝的藥,肝功能又慢慢 ...