2012-04-05
Java编程思想第四版——第十一天
今天因为想到一个丢色子的问题,所以没有看书,这个问题其实也挺简单的,就是很长时间没接触这些基础的东西,刚开始连数组都忘记怎么去创建了。不过,稍微回忆了下,还是解决了这个题目,感觉还是有点收获的。
清明节放假了三天,都没看过书,这样真说不过去,必须抓紧时间了啊。好了,下午来任务了,先把活干完再说了。放假对于自己,不要再当作放假了。
还是有很多不如意的地方,等待以后再来检查这些代码吧。
代码:
package com.wu;
import java.text.DecimalFormat;
public class SeZi {
public static void main(String[] args) {
new SeZi().getJiLi();
}
public void getJiLi(){
int num1;
int num2;
int sum;
int[] count = new int[11];
int all = 36000;
double per1;
int per2;
for(int i=0; i<all; i++){
num1 = (int)(1 + Math.random()*6);
num2 = (int)(1 + Math.random()*6);
sum = num1 + num2;
for(int x=0; x<11; x++){
if(sum == (x+2)){
count[x] += 1;
}
}
/*这个是第一次的思路,先把程序完成,然后再想优化代码。
if(sum == 2){
count[0] = count[0] + 1;
}else if(sum == 3){
count[1] = count[1] + 1;
}else if(sum == 4){
count[2] = count[2] + 1;
}else if(sum == 5){
count[3] = count[3] + 1;
}else if(sum == 6){
count[4] = count[4] + 1;
}else if(sum == 7){
count[5] = count[5] + 1;
}else if(sum == 8){
count[6] = count[6] + 1;
}else if(sum == 9){
count[7] = count[7] + 1;
}else if(sum == 10){
count[8] = count[8] + 1;
}else if(sum == 11){
count[9] = count[9] + 1;
}else if(sum == 12){
count[10] = count[10] + 1;
}else{
System.out.println("other");
}
*/
}
for(int n=0; n<11; n++){
per1 = ((double)count[n]/all)*100;
per2 = (int)per1;
System.out.println((n+2) + "出现的概率是:" + per2 + "%");
}
/*这个是格式化得出的概率,并进行了四舍五入。
for(int m=0; m<11; m++){
per = (double)count[m]/all;
DecimalFormat df = new DecimalFormat("0.0");
String per1 = df.format(per*100);
System.out.println((m+2) + "出现的概率是:" + per1 + "%");
}
for(int m=0; m<11; m++){
per = ((double)count[m]/all)*100;
int per1 = (int)per;
System.out.println((m+2) + "出现的概率是:" + per1 + "%");
}*/
}
}