4. 高中幾何課曾介紹過勾股定理(即直角三角形三條邊的長度之間關係):
也可以寫成以下形式
這個表示式中的大部分運算子在第三章中已經介紹過,唯一沒有出現的是開平方的操作,而
這一操作可以通過呼叫標準函式math.sqrt來完成。
例如,下列語句
double y = math.sqrt(x);
表示將x 的平方根賦給y。
請編寫乙個控制台程式,使之能通過使用者給定的a,b的值,求出c的解,其中a,b為整型
變數,c 為雙精度浮點型。程式完成圖應當如下圖所示:
code如下:
public class pythagoreantheorem extends consoleprogram
}
5、編寫乙個控制台程式,使之能夠讀取一列整數,每行乙個,直至讀到0 值時為止(此值
作為哨兵值,標識結束,在程式設計實踐中應當能夠隨需要作出改變。)當完成對整列的讀取後,
該程式應當能夠指出此列中的最大值和最小值。如下圖所示:
該程式應該能夠對以下特殊情況進行處理:
該程式應該能夠對以下特殊情況進行處理:
如果哨兵值前僅有乙個數值,則在程式的返回值中,此數值應當既是最大值又是最小值
如果哨兵值是第乙個輸入值,且不再有其他的輸入值。此時,程式應當能夠輸出相應的
錯誤資訊。
code:
import acm.program.*;
public class findrange extends consoleprogram
//比較並賦值
public void compare()
if(x >= max) max = x;
if(x <= min) min = x;
times++; }
//輸出
public void print()else }
//讀取
public void read()
print(); }
}
6、道格拉斯•侯世達的巨作《哥德爾、艾舍爾、**——集異璧之大成》曾獲得普利茲獎,
這本書中包含了許多數學謎團。這些謎團中的有不少可以借助電腦程式的形式表達。在此
書的第十二章中,侯世達提出了乙個重要的問題,而這個問題剛好在第四章控制語句的研究
範圍中。
對於這個問題的描述,如下所示:
設存在正整數n。
若n 為偶數,令n=n/2。
若n 為奇數,令n=3n+1。
重複如上步驟,直到n=1 為止。
在本書舊版的第401 頁,侯世達用下述例項說明了這個過程,初值為15:
15 是奇數,因此執行3n+1: 46
46 是偶數,因此執行減半: 23
23 是奇數,因此執行3n+1: 70
70 是偶數,因此執行減半: 35
35 是奇數,因此執行3n+1: 106
106 是偶數,因此執行減半: 535
53 是奇數,因此執行3n+1: 160
160 是偶數,因此執行減半: 80
80 是偶數,因此執行減半: 40
40 是偶數,因此執行減半: 20
20 是偶數,因此執行減半: 10
10 是偶數,因此執行減半: 5
5 是奇數,因此執行3n+1: 16
16 是偶數,因此執行減半: 8
8 是偶數,因此執行減半: 4
4 是偶數,因此執行減半: 2
2 是偶數,因此執行減半: 1
從這個例子容易看出,數字在上下波動中,實際上,到目前為止所試驗過的所有整數,最終
都會變小直至變為1 為止。從某種角度而言,這個運算過程與冰雹(hailstones)有相似
之處,後者在落地之前會反覆被風吹向空中。也正因此,雖然有其它的名字,這個數列大
多數情況下被稱為冰雹數列(hailstone sequence)。
寫乙個控制台程式,使用者每輸入乙個數字,就用侯世達的書中相同的格式,顯示出該數字相
應的冰雹數列,並在最後一行輸出到達1 所用的總步驟數。最終程式應當能顯示如下示例:
這個問題的迷人之處在於至今沒有人能夠證明整個過程最後一定會停下來。隨著數值的變
化,到達1 所需要的步驟將能夠變得非常大。不妨求解一下。當n 等於27 的時候,需要多
少步能轉化為1?
code:
import acm.program.*;
public class hailstone extends consoleprogram
public void calculate()
if(a == 1)break;
if(a%2 == 0)else
} }}
斯坦福 演算法2 第二週作業
來自斯坦福 的algorithms design and analysis,與目前coursera上的版本內容沒有變化,不過時間安排略有不同。可以有反例。但我貌似沒咋想出來。錯誤的原因大概是因為用在了有向圖上面。問題1 用kruskal演算法實現課上講的聚類演算法。如下 include includ...
斯坦福CS224n課程作業
作業要求如下 解析 題目要求我們證明 softmax 函式具有常數不變性。解答 對於 x c 的每一維來說,有如下等式成立 softmax x c frac c e c frac e e e frac e e e frac e softmax x 則可知 softmax x softmax x c ...
斯坦福 演算法1 第一周作業
來自斯坦福 的algorithms design and analysis,與目前coursera上的版本內容沒有變化,不過時間安排略有不同。三路歸併排序的複雜度。和兩路沒有啥區別,依然要遞迴log nlogn logn 層,只不過log的底數從2變成3。每一層的計算複雜度依然是o n 根據大o表示...