討論區快速選單
知識庫快速選單
網路投保旅行平安險 政府補助!學嵌入式+物聯網 討論區最近新進100則主題
[ 回上頁 ] [ 討論區發言規則 ]
Java 如何亂數平均分配??
更改我的閱讀文章字型大小
作者 : slovea(slovea)
[ 貼文 10 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2012/8/21 下午 09:14:03
煩請各位大大指導一下:
我試著想用Java寫出一個程式但是遇上瓶頸,希望各位大大指導一下
問題如下:

例如:

輸入一個值:60

然後60分解成3個隨機變數Rx (但三個隨機變數產生後總何須滿足60)

假設產生出:15(Rx1) 20 (Rx2) 25 (Rx3) 三個數字後

每個變數再產生出10個子變數(各10個子變數平均值須滿足各個Rx1.Rx2 Rx3)

現階段問題為:
1.3個隨機變數總合無法與keyin:60值 相符合
2.10個隨機子變數平均值無法與各隨機變數Rx相符合
3.隨機子變數無法有效限定最大最小值

希望各位前輩能指導我一下,看看程式碼哪裡有問題,感激不盡,謝謝!


程式碼如下:

System.out.println("Key in:");
Scanner scanner = new Scanner(System.in);
double z = Double.parseDouble(scanner.nextLine());
double x01=z*1.5;
double y01=z*0.5;
double n[] = new double[3];
for (int i = 0; i < 3; i++) {
n[i] = (double) (Math.random() * (x01-y01)) + y01;
System.out.printf("\n%.4f", n[i]);
double x02=n[i]*1.05;
double y02=n[i]*0.95;
double m[]=new double [10];
for (int j=0;j<10;j++){
m[j]=(double)(Math.random()*(x02-y02)+y02);
System.out.printf("\n%.2f", m[j]);
}
}
}
}







作者 : sflam(Raymond)討論區板主 Visual C++ .NET卓越專家VC++一代宗師新手入門優秀好手資訊類作業求救頂尖高手C++一代宗師貼文超過4000則
[ 貼文 4945 | 人氣 9172 | 評價 32290 | 評價/貼文 6.53 | 送出評價 142 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人slovea註記此篇回應為最佳解答 2012/8/21 下午 11:47:04
>例如:
>輸入一個值:60
>然後60分解成3個隨機變數Rx (但三個隨機變數產生後總何須滿足60)

產生兩個隨機數就好了, 第三個用輸入值 (例子是 60) 來減. 比方說:
  int z = Integer.parseInt(scanner.nextLine());
  Random rand = new Random();
  int Rx1 = rand.nextInt(z);
  int Rx2 = rand.nextInt(z);
  int Rx3 = z - Rx1 - Rx2;

Rx3 可以是負數. 如果要侷限為正數, nextInt() 的參數用小於 z.

後面的 10 個子變數也可以依此辦理.
作者 : slovea(slovea)
[ 貼文 10 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2012/8/22 下午 08:23:19
原來是這樣,謝謝大大指點!
此部分瓶頸已突破!
非常感謝!

不過想再請教一下
亂數出來的數值會什麼會超過所設定的上下限呢?
請問我程式 是否有錯誤呢?
Thanks!
 板主 : 風月
 > Java入門一般區 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Java入門一般區 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Java入門一般區
1 洋將 2410 
2 Aron 2130 
3 Aries 1510 
4 DEMO999 1310 
5 Ben 990 
6 ramb 620 
7 ozzy 570 
8 tand 460 
9 Huah 410 
10 vindy 400 
Java入門一般區
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875