二1.角谷猜想:任何一个正整数n,如果它是偶数则除以二,如果是奇数则乘以3再加上1,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1,编写应用程序和小程序分别验证:3~10000之间任何正整数都满足上述规则。
2.编写一个程序模拟同时掷2个骰子。
程序要用Math.random( )模拟产生第一个骰子,然后再产生第二个骰子,将2个结果相加。
和等于7的可能性最大,等于2和12的可能性最小。
下图表示了出现36种情况组合。
程序模拟掷3600次骰子,判断求和结果是否合理,共有6种情况的和是7,故在3600次掷骰子的结果中应当有1/6的可能性是7。
123456 1234567 2345678 3456789 45678910 567891011 6789101112一、实验步骤:1.应用程序:package cp2;public class a4 {public static void main(String[] args) {boolean a=true;int j;for(int i=3;i<=10000;i++){for(j=i;j>1;){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.*;public class a5 extends Applet{Label lab1;TextField input1;int num1=1;public void init(){lab1=new Label("任意输入3~10000的一个整数");input1=new TextField(10);add(lab1);add(input1);}public boolean action(Event e,Object o){num1=Integer.parseInt(input1.getText());showStatus("");input1.setText("");repaint();showStatus("这个数是"+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+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);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;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=(double)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("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,采用公式:e x=1+x1/1!+x2/2!+……..+x n/n!.三、实验步骤:1.程序:package cp3;import java.awt.*;import java.applet.*;public class a1 extends Applet{Label lab;TextField input;int a,b[]=new int[20],i,j;public void init(){lab=new Label("输入数字");input=new TextField(10);add(lab);add(input);}public boolean action(Event e,Object o){a=Integer.parseInt(input.getText());input.setText("");repaint();return true;}public void paint(Graphics g){for(int i=0;a!=0;i++){b[i]=a%10;a/=10;}for(j=0;b[j]!=0;j++);for(int t=--j;t>=0;t--){g.drawString(Integer.toString(b[t]),j*20-t*20,55); }for(i=0;i<b.length;i++){b[i]=0;}}}运行结果:* *** ***** ******* ********* *****2:程序:package cp3;import java.awt.*;import java.applet.*;public class a6 extends Applet{Label lab1,lab2;TextField input1,input2;int a,b,i;double sum=0;public class aa{int mult(int n){int s=1;for(int j=1;j<=n;j++)s*=j;return s;}}public void init(){lab1=new Label("输入x大小");input1=new TextField(10);lab2=new Label("输入n值");input2=new TextField(10);add(lab1);add(input1);add(lab2);add(input2);}public boolean action(Event e,Object o){a=Integer.parseInt(input1.getText()); b=Integer.parseInt(input2.getText()); input1.setText("");input2.setText("");showStatus("");sum=0;aa c=new aa();for(i=0;i<=b;i++){sum+=(double)(Math.pow(a,i))/(double)c.mult(i);}showStatus("结果为"+sum);return true;}}输入x=1,n=30时的运行结果:四二、实验内容:1.定义一个类,它包含了一个int类型的变量x、若干个构造函数(根据你的需要)和一个输出方法show( )。
编程:从键盘输入一个数,将这个数传递给这个类的x,采用方法show( )逆序输出这个数。