數值演算法 《程式設計珠璣 續 》第14章課後題

2021-06-26 23:45:49 字數 598 閱讀 7519

第14題:在我的電腦上能夠執行,因為double是有精度限制的,當a=103時,執行10次就會停止了。

#include#include#includeusing namespace std;

int main()

{ double a=103;

double x=1.0;

double newx=0;

int i=0;

while(1)

{ cout<

看到結果我是徹底給跪了,我還以為程式寫錯了,然後把兩個結果比較了一下,就是那個0.0000001的門限,結果是沒有錯誤。不知道c++裡是怎麼寫的sprt,根本不像是《程式設計珠璣》裡寫的,庫函式已經特別快了,或許是因為《程式設計珠璣》畢竟是在上世紀80年**的書,庫函式已經被優化了30多年了吧。如下是**和結果:

#include#includeusing namespace std;

double distanceeuclid(double p,double q)

{ p=abs(p);

q=abs(q);

if(p0.0000001)

cout<

程式設計珠璣第14章

這裡把所有關於堆的操作寫出來。當做標程吧。include include define ms 1025 typedef struct heap heap heap h static void shift heap h,int i else break a i t static void increa...

部分排序 《程式設計珠璣 續 》第15章

部分排序演算法 要排序陣列中第k1個元素到第k2個元素,先用類快排演算法找出第k1和第k2個元素,演算法見以前部落格 陣列中第k個數 程式設計珠璣 續 第3章 此時,k1到k2中的元素雖然未排序,但是任何乙個元素都比k1個元素大比k2個元素小。注意如果有相同的元素的特殊情況!然後用快排排序k1到k2...

程式設計珠璣第12章

正文 如何生成0 n 1內的m個隨機整數 1 方法一 比如要從5個數里選出2個數,第乙個數的概率是2 5,第二個數的概率是1 4,然後是0 3 那麼現在已經很清楚了。可以寫 如下 for int i 0 i n i if rand n i m 2 方法二 可以用乙個set,每生成乙個隨機,就去set...