Lab6-ModeMajority
5530526621 น.ส.วารีพร วิสาลเสสถ์ (COM21900) (8/31/2012 (12:56:27 PM))
MiniQuiz + TestScript |
JLab>javac Utils.java
JLab>
JLab>java Selftest
JLab> 1. count : ok ok ok ok ok (5.0/5.0)
JLab> 2. mode : ok ok ok ok ok (5.0/5.0)
JLab> 3. majority : ok ok ok ok ok (5.0/5.0)
JLab> : -----------------------------
JLab> : ?????? 15.0 ????? (???? 15.0)
JLab> : -----------------------------
JLab> :<POINT>15.0</POINT> (<TOTAL>15.0</TOTAL> )
JLab>
ได้ 15 คะแนน |
Source Code |
public class Utils {
//------------------------------------------------------------
// คืนจำนวนข้อมูลในอาเรย์ d ที่มีค่าเท่ากับ x เช่น
// ให้ d = [ 2, 3, 4, 4, 5, 5, 4 ], x = 4
// เมื่อเรียก count(d,x) จะได้ 3 เพราะมี 4 ปรากฏใน d อยู่ 3 ตัว
public static int count(int[] d, int x) {
int n = 0;
for (int i = 0; i < d.length; i++) {
if (d[i] == x) n++;
}
return n;
}
//------------------------------------------------------------
// คืนข้อมูลในอาเรย์ d ที่ปรากฏเป็นจำนวนมากสุด เช่น
// ให้ d = [1, 3, 3, 1, 2, 3, 9, 3, 3]
// เมื่อเรียก mode(d) จะได้ 3 เพราะ 3 ปรากฏใน d เป็นจำนวน 5 ตัว ซึ่งเป็นจำนวนมากสุด
// หมายเหตุ : ถ้ามีข้อมูลใน d เกินหนึ่งตัวที่ปรากฏมากสุดเป็นจำนวนเท่ากัน จะคืนตัวใดก็ได้
// และให้ถือว่าอาเรย์ d ที่ได้รับมีขนาดอย่างน้อย 1 ช่อง
public static int mode(int[] d) {
/*
int a[] = new a[d.length];
for (int i = 0; i < d.length; i++) {
int n = d[i];
a[i] = count(d,n);
}
int max = a[0];
for (int i = 1; i < d.length; i++) {
if (a[i] > max) max = a[i];
}
i
return
*/
int max = 0;
int mod=0;
for (int i = 0; i < d.length; i++) {
if (count(d, d[i]) > max) {
max = count(d, d[i]);
mod = d[i];
}
}
return mod;
}
//------------------------------------------------------------
// ถามว่ามีข้อมูลใดในอาเรย์ d หรือไม่ ที่มีค่าซ้ำ ๆ กันเป็นจำนวนเกินครึ่งของขนาดอาเรย์ เช่น
// ให้ d = [1,0,1,2,1,1,1,1,1,2]
// เมื่อเรียก majority(d) จะคืนค่า true
// แต่ถ้า d = [1,1,1,2,2,3]
// เมื่อเรียก majority(d) จะคืนค่า false เพราะไม่มีข้อมูลใดใน d ที่มีค่าซ้ำกันเกิน 3 ตัว
public static boolean majority(int[] d) {
boolean a= (count(d, mode(d)) > (d.length / 2.0));
return a;
}
//------------------------------------------------------------
// ถ้าต้องการเขียนเมท็อด main เพื่อทดสอบการทำงานของเมท็อดต่่าง ๆ ก็เขียนเพิ่มได้ที่บริเวณนี้
public static void main(String[] args) {
int d[] = { 2, 3, 4, 4, 5, 5, 4 };
int x=4;
int n = count(d, x);
System.out.println("count = "+n);
}
//------------------------------------------------------------
}
|
SM=2, CM=27, ST=14, KY=1373, TR=60:00
ERR = 60:00 ;
ERR = 60:00 1046,1046,1046,1046,1046,1046,1092,1058,1092,1046,;
ERR = 60:00 1046,1046,1046,1092,1058,1092,1046,;
ERR = 60:00 1092,1046,;
ERR = 60:00 1046,;
ERR = 60:00 1092,1092,1092,1092,1092,1092,;
ERR = 60:00 1092,1092,1092,1092,1092,1092,;
ERR = 60:00 1092,1092,1092,1092,1092,1092,;
ERR = 60:00 1060:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
|
|