English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我有幾個java程式問題想請問大家...
1.想寫出e=1+1/1!+1/2!+1/3!.....+1/n! , n自行輸入...參考了知識+的一些問題還是寫不出來...我的想法是先令
int e , n ;
e=1 ; n=n*(n-1) ; n-- ;
e=e+1/n ;
,但是還是跑不出來...請大大幫我看看想法是否有錯.??
2.Write a Java application that can count the frequency of each sum of two dies by randomly rolling them up to 10000.
3.Write a Java application that can make the non-decreasing sort for a sequence of 100 random numbers in range of 1.00-999.99 each number.
以上2題完全不會...請大大救命ㄚ...>\"<

2006-03-31 14:25:35 · 1 個解答 · 發問者 James 2 in 電腦與網際網路 程式設計

1 個解答

1. e=1+1/1!+1/2!+1/3!.....+1/n!。因為 e 會有小數點,所以不能用 int 整數,而要用倍精確的 double 會比較好。
double e = 1;
double x = 1;
for (int i = 1; i <=n; i++) { // 假設 n 的值已給定
x /= i; // 算出第 i 階的 1/i! 值
e += x;
}

2. 題目的意思是要你列出用兩顆骰子擲一萬次,每種點數和的出現頻率。
首先要先用亂數取骰子的點數,可用
int diceA = Math.random() * 10000 % 6; // 這裡要注意如果餘數為 0,點數為 6
int diceB = Math.random() * 10000 % 6;

再建立一個陣列來儲存每次所擲出的點數和
int[] sums = new int[10000];

接下來就是用 for 廻圈來模擬擲一萬次,最後再算出 2 點、3點、....、11點、12點出現的機率是多少,相信這些你應該可以自己寫吧。

3. 題目的意思是要從100次亂數中取數值在 1.00 ~ 999.99 之間,用非降幂的方式排列之。
首先先建立一個 double 的陣列
double[] nums = new double[100];

再用 for 廻圈取 100 個值在 1.00 ~ 999.99 間的亂數
for (int i = 0; i < 100; i++) {
double d = Math.random()*1000;
if (d < 1.00D || d > 999.99D) { // 判斷 d 的值是否合格
i--; continue; // 若不合格,將 i 減一,重跑一次 
}
nums[i] = d;
}

最後用 java.util.Arrays 的 sort() 來作排序的動作
Arrays.sort(nums);

再將結果列出即可。

2006-04-04 07:57:30 · answer #1 · answered by ? 7 · 0 0

fedest.com, questions and answers