《java 皮常德2-7章答案》由会员分享,可在线阅读,更多相关《java 皮常德2-7章答案(20页珍藏版)》请在金锄头文库上搜索。
1、二1. 角谷猜想:任何一个正整数n,如果它是偶数则除以二,如果是奇数则乘以3再加上1,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1,编写应用程序和小程序分别验证:310000之间任何正整数都满足上述规则。2. 编写一个程序模拟同时掷2个骰子。程序要用Math.random()模拟产生第一个骰子,然后再产生第二个骰子,将2个结果相加。和等于7的可能性最大,等于2和12的可能性最小。 下图表示了出现36种情况组合。程序模拟掷3600次骰子,判断求和结果是否合理,共有6种情况的和是7,故在3600次掷骰子的结果中应当有1/6的可能性是7。12345612345672345678
2、3456789456789105678910116789101112一、 实验步骤:1. 应用程序:package cp2;public class a4 public static void main(String args) boolean a=true; int j; for(int i=3;i1;) if(j%2=0) j=j/2; else j=j*3+1; if(j!=1) a=false;break; System.out.println(a); 运行结果:true小程序:package cp2;import java.awt.*;import java.applet.*;pub
3、lic class a5 extends Applet Label lab1; TextField input1; int num1=1; public void init() lab1=new Label(任意输入310000的一个整数); input1=new TextField(10); add(lab1); add(input1); public boolean action(Event e,Object o) num1=Integer.parseInt(input1.getText(); showStatus(); input1.setText(); repaint(); showS
4、tatus(这个数是+num1); return true; public void paint(Graphics g) int xpos=50,ypos=50,i=0; int xpos1=xpos; while(num1!=1) if(num1%2=0) num1=num1/2; g.drawString(Integer.toString(num1), xpos, ypos); else num1=num1*3+1; g.drawString(Integer.toString(num1), xpos, ypos); xpos=xpos+50; i+; if(i%5=0) ypos=ypos
5、+10; xpos=xpos1; 运行结果:2.程序:package cp2;import java.awt.*;import java.applet.*;public class a6 extends Applet Label lab; TextField input; int a,b,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12; double i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12; public void init() lab=new Label(输入次数); input=new TextField(10); add(lab);
6、 add(input); public boolean action(Event e,Object o) int time=Integer.parseInt(input.getText(); showStatus(); input.setText(); showStatus(模拟次数+time); t2=t3=t4=t5=t6=t7=t8=t9=t10=t11=t12=0; for(int i=1;i=time;i+) a=(int)(Math.random()*6+1); b=(int)(Math.random()*6+1); switch(a+b) case 12:t12+;break;
7、case 11:t11+;break; case 10:t10+;break; case 9:t9+;break; case 8:t8+;break; case 7:t7+;break; case 6:t6+;break; case 5:t5+;break; case 4:t4+;break; case 3:t3+;break; case 2:t2+;break; i12=(double)t12/i; i11=(double)t11/i; i10=(double)t10/i; i9=(double)t9/i; i8=(double)t8/i; i7=(double)t7/i; i6=(doub
8、le)t6/i; i5=(double)t5/i; i4=(double)t4/i; i3=(double)t3/i; i2=(double)t2/i; repaint(); /repaint(); return true; public void paint(Graphics g) g.drawString(各种和的概率:,25,40); g.drawString(12:+i12,25,55); g.drawString(11:+i11,25,70); g.drawString(10:+i10,25,85); g.drawString(9:+i9,25,100); g.drawString(
9、8:+i8,25,115); g.drawString(7:+i7,25,130); g.drawString(6:+i6,25,145); g.drawString(5:+i5,25,160); g.drawString(4:+i4,25,175); g.drawString(3:+i3,25,190); g.drawString(2:+i2,25,205); 运行结果:三一、 实验内容:1. 采用循环语句打印如下图形:* * * * * * * *2编写一个applet,采用公式:ex=1+x1/1!+x2/2!+.+xn/n!.三、实验步骤: 1程序:package cp3;import java.awt.*;import java.applet.*;public class a1 extends Applet Label lab; TextField input; int a,b=new int20,i,j; public void init() lab=new Label(输入数字); input=new TextField(10); add(lab); add(input);