討論區快速選單
知識庫快速選單
政府補助!學嵌入式+物聯網 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
不用迴圈,寫亂數.再加上假設....
更改我的閱讀文章字型大小
作者 : memory812(memory)
[ 貼文 15 | 人氣 6109 | 評價 0 | 評價/貼文 0 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/11/1 下午 09:17:29
請隨機產生十位同學的成績,並統計及格與不及格的人數
(不可使用if..等迴圈,限用條件運動符號,請說明程式碼的功能)

自己有寫了一段
但是出來的數字.到了第二個就完全一樣了
請各位高手解救一下哦~


import java.util.*;
 public class Aaa {
  public static void main(String[] args) {
  Random randomG1 = new Random(); //產生新的亂數
  Random randomG2 = new Random(); //產生新的亂數
  Random randomG3 = new Random(); //產生新的亂數
  Random randomG4 = new Random(); //產生新的亂數
  Random randomG5 = new Random(); //產生新的亂數
  Random randomG6 = new Random(); //產生新的亂數
  Random randomG7 = new Random(); //產生新的亂數
  Random randomG8 = new Random(); //產生新的亂數
  Random randomG9 = new Random(); //產生新的亂數
  Random randomG10 = new Random(); //產生新的亂數
  System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG2.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG3.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG4.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG5.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG6.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG7.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG8.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG9.nextInt(100)); //印出0至100的成績亂數
  System.out.println(randomG10.nextInt(100)); //印出0至100的成績亂數
  }
}
作者 : propsychokiller(Ben) Java優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過1000則人氣指數超過10000點
[ 貼文 1380 | 人氣 20444 | 評價 6650 | 評價/貼文 4.82 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人memory812註記此篇回應為很有道理 2004/11/1 下午 11:55:38
import java.util.*;
 public class Aaa {
  public static void main(String[] args) {
  Random randomG1 = new Random(); //產生新的亂數
  for(int i=0;i<10;i++)
  System.out.println(randomG1.nextInt(101)); //印出0至100的成績亂數

  }
}
作者 : yeltek(yeltek)
[ 貼文 20 | 人氣 1462 | 評價 70 | 評價/貼文 3.5 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人memory812註記此篇回應為很有道理 2004/11/2 上午 07:32:26
Random的建構式可以接愛seed value,像醬

Random(long seedValue)

或者在使用前用setSeed(long seedValue)來讓它有變化
(不過,有迴圈幹嘛不用??真怪)
作者 : yeltek(yeltek)
[ 貼文 20 | 人氣 1462 | 評價 70 | 評價/貼文 3.5 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人memory812註記此篇回應為很有道理 2004/11/2 上午 07:32:56
Random的建構式可以接愛seed value,像醬

Random(long seedValue)

或者在使用前用setSeed(long seedValue)來讓它有變化
(不過,有迴圈幹嘛不用??真怪)
作者 : memory812(memory)
[ 貼文 15 | 人氣 6109 | 評價 0 | 評價/貼文 0 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/11/2 上午 08:13:11
這是學校功課...
所以老師不準我們用迴圈..
用迴圈我也會寫...
但是,不用迴圈.就是不會寫...所以可以麻煩寫一下
不用迴圈的寫法嗎?
作者 : bluemt(藍山)
[ 貼文 35 | 人氣 266 | 評價 300 | 評價/貼文 8.57 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人memory812註記此篇回應為最佳解答 2004/11/2 上午 09:46:25
Random randomG1 = new Random(); //產生新的亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數
    System.out.println(randomG1.nextInt(100)); //印出0至100的成績亂數

Random不用宣加這麼多個...
作者 : memory812(memory)
[ 貼文 15 | 人氣 6109 | 評價 0 | 評價/貼文 0 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/11/2 下午 05:15:10
那如何去統計及格與不及格人數呢
因為都是亂數丫~
怎麼去判斷丫~
而且也是一樣不能用迴圈的方式...
想不通....
作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2189 | 人氣 89850 | 評價 10120 | 評價/貼文 4.62 | 送出評價 79 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人memory812註記此篇回應為最佳解答 2004/11/2 下午 11:19:01
//好古怪的要求...

int fail_pass[2];
int score;
Random r0 = new Random(); //產生新的亂數
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);

  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);
  score = r0.nextInt(100); fail_pass[score/50]++; System.out.println(score);

System.out.println( "pass : " + fail_pass[1] );
System.out.println( "fail : " + fail_pass[0] );
作者 : memory812(memory)
[ 貼文 15 | 人氣 6109 | 評價 0 | 評價/貼文 0 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/11/3 上午 12:15:15
哈...自己也寫出來了~
真是感動吶
貼出來給大家看一下....

import java.util.*;
 public class Ok {
  public static void main(String[] args) {
  Random randomG1 = new Random(); //產生新的亂數
  int a= (randomG1.nextInt(100)); //產生第一位同學的亂數
  int bb=(a >= 60 ? 1 : 0); //判斷成績有沒有及格,如果有為一,如果沒有為0
  int c= (randomG1.nextInt(100));
  int dd=(c >= 60 ? 1 : 0);
  int e= (randomG1.nextInt(100));
  int ff=(e >= 60 ? 1 : 0);
  int g= (randomG1.nextInt(100));
  int hh=(g >= 60 ? 1 : 0);
  int i= (randomG1.nextInt(100));
  int jj=(i >= 60 ? 1 : 0);
  int k= (randomG1.nextInt(100));
  int ll=(k >= 60 ? 1 : 0);
  int m= (randomG1.nextInt(100));
  int nn=(m >= 60 ? 1 : 0);
  int o= (randomG1.nextInt(100));
  int pp=(o >= 60 ? 1 : 0);
  int q= (randomG1.nextInt(100));
  int rr=(q >= 60 ? 1 : 0);
  int s= (randomG1.nextInt(100));
  int tt=(s >= 60 ? 1 : 0);
     int z=(a > 60 ? 1 : 0)+(c > 60 ? 1 : 0)+
     (e > 60 ? 1 : 0)+(g > 60 ? 1 : 0)+(i > 60 ? 1 : 0)+
     (k > 60 ? 1 : 0)+(m > 60 ? 1 : 0)+(o > 60 ? 1 : 0)+
     (q > 60 ? 1 : 0)+(s > 60 ? 1 : 0);//算出及格人數,如果及格+1,不及格+0
    
     System.out.println("第一位同學Java成績:"+a);//印出第一位同學JAVA成績
     System.out.println("第二位同學JAVA成績:"+c);
     System.out.println("第三位同學JAVA成績:"+e);
     System.out.println("第四位同學JAVA成績:"+g);
     System.out.println("第五位同學JAVA成績:"+i);
     System.out.println("第六位同學JAVA成績:"+k);
     System.out.println("第七位同學JAVA成績:"+m);
     System.out.println("第八位同學JAVA成績:"+o);
     System.out.println("第九位同學JAVA成績:"+q);
     System.out.println("第十位同學JAVA成績:"+s);
     System.out.println("及格人數:"+z);//印出及格人數
     int ab =10-z;//算出不及格人數,以十個人減去及格人數
     System.out.println("不及格人數:"+ab);//印出不及格人數
  }
  
  
}
作者 : yjl1668(天兵)
[ 貼文 88 | 人氣 1835 | 評價 60 | 評價/貼文 0.68 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人memory812註記此篇回應為很有道理 2004/11/3 下午 08:10:09
int bb=(a >= 60 ? 1 : 0);

if(a >= 60)
  bb=1
else
  bb=0
產生出來的機器碼會不一樣嗎???
作者 : yjl1668(天兵)
[ 貼文 88 | 人氣 1835 | 評價 60 | 評價/貼文 0.68 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人memory812註記此篇回應為很有道理 2004/11/3 下午 08:27:07
int a= (randomG1.nextInt(100)); //產生第一位同學的亂數
int bb=(a >= 60 ? 1 : 0); //判斷成績有沒有及格,如果有為一,如果沒有為0

改成
int bb=(randomG1.nextInt(100))/60;

作者 : propsychokiller(Ben) Java優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過1000則人氣指數超過10000點
[ 貼文 1380 | 人氣 20444 | 評價 6650 | 評價/貼文 4.82 | 送出評價 13 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/11/6 上午 02:43:28
int a= (randomG1.nextInt(100));
是錯的
這樣子沒有人會得100分
 int a= (randomG1.nextInt(101));
是對的
作者 : ant(小螞蟻) 人氣指數超過10000點
[ 貼文 53 | 人氣 10935 | 評價 20 | 評價/貼文 0.38 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/11/27 下午 12:12:05
問題怪怪的?
1.if 並不是迴圈,是判斷式,迴圈應該是for、 while...等。
2.什麼是運動符號?
3.程式主要是訓練程式設計人員的邏輯能力,不準用if及迴圈等怪怪的吧,不用if和迴圈還算是程式嗎?
4.你寫的 ? : 這個語法,這也是if、else 的另一種寫法,如果照你所說的題目限制,其實這樣也是不行的。
5.依照你的條件限制,其實你的要求是無法寫出程式的(因為要判斷是否及格一定要用到判斷式。
6.所以你的作業可以只要交二個字"無解"就行了。
作者 : kalua(kalua)
[ 貼文 34 | 人氣 5 | 評價 270 | 評價/貼文 7.94 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/12/2 上午 12:25:32
有些題目 對初學者來說 的確是有點難度 尤其是不了解整個程式語言所能提供的功能時
不過 這是拿來玩耍的好題目

用了一些好像作弊的方法 ^^

import java.util.*;

class grade {
Random rand = new Random();
int nopass = 0;

public void notpass(int grade) {
try {
rand.nextInt(grade - 60);
} catch (IllegalArgumentException e) {
nopass++;
}
return;
}

public void getGrade(int maxgrade, int count) {
int grade = 0;
try {
rand.nextInt(count);
grade = rand.nextInt(maxgrade);
} catch (IllegalArgumentException e) {
return;
}
System.out.println("Grade of Classmate " + (11 - count) + " is " + grade);
notpass(grade);
count--;
getGrade(maxgrade,count);
}

public static void main(String[] args) {
int students = 10;
grade myGrade = new grade();
myGrade.getGrade(101,students);
System.out.println((students - myGrade.nopass) + " people pass and " + myGrade.nopass + " is not pass");
}
}
作者 : zanyking(混蛋)
[ 貼文 5 | 人氣 5 | 評價 20 | 評價/貼文 4 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/4/27 下午 09:57:55

>請隨機產生十位同學的成績,並統計及格與不及格的人數
>(不可使用if..等迴圈,限用條件運動符號,請說明程式碼的功能)
>
>自己有寫了一段
>但是出來的數字.到了第二個就完全一樣了
>請各位高手解救一下哦~

既然不能迴圈,那就請愛用遞回。

既然沒有if,就請愛用三元運算子。

程式碼如下:

package student;
import java.util.ArrayList;
import java.util.Random;
/**
 * @author ian
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class StudentDegree {
    private Random random = new Random();
    private ArrayList studentArray = new ArrayList();
    private int pass = 0;
    private int goodBye = 0;
    private int counter = 0;
    private int max = 100;
    
    public void setCounter(int counter) {
     this.counter = counter;
    }
    
    public int getGoodBye() {
     return goodBye;
    }
    
    public int getPass() {
     return pass;
    }
    
    public int getStudentDegree(int index) {
     return ((Integer)studentArray.get(index)).intValue();
    }
    
    public int computeStudentDegree() {
     studentArray.add(new Integer(random.nextInt(100)));
     System.out.println("第"+counter+"位同學Java成績:"+getStudentDegree(counter));
     counter++;
     int x=(counter >= max ? 1 : computeStudentDegree());
     return x;
    }
    
    public int stasticDegree(int okValue ) {
     int d = getStudentDegree(counter);
     pass +=(d >= okValue ? 1 : 0);
    
     goodBye+=(d < okValue ? 1 : 0);
    
     counter++;
     int x=(counter >= max ? 1 : stasticDegree(okValue));
     return x;
    }

    public static void main(String[] args) {
    
     StudentDegree student = new StudentDegree();
     student.computeStudentDegree();
     student.setCounter(0);
     student.stasticDegree(60);
     System.out.println("再見的有"+student.getGoodBye()+"人");
     System.out.println("恭喜的有"+student.getPass()+"人");
    }
}

最後,請遵照JAVA的優良傳統習慣,用物件寫比較好。
作者 : redeyesofdragon(THE.丸子)
[ 貼文 66 | 人氣 7349 | 評價 30 | 評價/貼文 0.45 | 送出評價 18 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/7/5 下午 06:21:22

>
>>請隨機產生十位同學的成績,並統計及格與不及格的人數
>>(不可使用if..等迴圈,限用條件運動符號,請說明程式碼的功能)
>>
>>自己有寫了一段
>>但是出來的數字.到了第二個就完全一樣了
>>請各位高手解救一下哦~
>
>既然不能迴圈,那就請愛用遞回。
>
>既然沒有if,就請愛用三元運算子。
>
>程式碼如下:
>
>package student;
>import java.util.ArrayList;
>import java.util.Random;
>/**
> * @author ian
> *
> * TODO To change the template for this generated type comment go to
> * Window - Preferences - Java - Code Style - Code Templates
> */
>public class StudentDegree {
> private Random random = new Random();
> private ArrayList studentArray = new ArrayList();
> private int pass = 0;
> private int goodBye = 0;
> private int counter = 0;
> private int max = 100;
>
> public void setCounter(int counter) {
> this.counter = counter;
> }
>
> public int getGoodBye() {
> return goodBye;
> }
>
> public int getPass() {
> return pass;
> }
>
> public int getStudentDegree(int index) {
> return ((Integer)studentArray.get(index)).intValue();
> }
>
> public int computeStudentDegree() {
> studentArray.add(new Integer(random.nextInt(100)));
> System.out.println('第'+counter+'位同學Java成績:'+getStudentDegree(counter));
> counter++;
> int x=(counter >= max ? 1 : computeStudentDegree());
> return x;
> }
>
> public int stasticDegree(int okValue ) {
> int d = getStudentDegree(counter);
> pass +=(d >= okValue ? 1 : 0);
>
> goodBye+=(d < okValue ? 1 : 0);
>
> counter++;
> int x=(counter >= max ? 1 : stasticDegree(okValue));
> return x;
> }
>
> public static void main(String[] args) {
>
> StudentDegree student = new StudentDegree();
> student.computeStudentDegree();
> student.setCounter(0);
> student.stasticDegree(60);
> System.out.println('再見的有'+student.getGoodBye()+'人');
> System.out.println('恭喜的有'+student.getPass()+'人');
> }
>}
>
>最後,請遵照JAVA的優良傳統習慣,用物件寫比較好。
>

對不起,我在這可問一問題
為什麼跑了那麼多次
永遠都是不及格人數>及格人數呢
這是那裡有問題嗎
還是亂數本來也就不公平?
作者 : zombiechuang(殭屍)
[ 貼文 76 | 人氣 5 | 評價 450 | 評價/貼文 5.92 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/7/6 下午 03:46:53

>
>
>對不起,我在這可問一問題
>為什麼跑了那麼多次
>永遠都是不及格人數>及格人數呢
>這是那裡有問題嗎
>還是亂數本來也就不公平?
>

因為.. 不及格的比率是59/100, 而及格的比率是41/100,所以,不及格的人數是應該
比及格的人數多的。

所謂亂數,其實還是有規則可循的,一般來說是用類似f(x)=ax+b, a, b都是很大的質數,
這類的方式來生成。而seed就是第一個x的值。
 板主 : 風月
 > 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.1396484