JAVA 皮常德2-7章答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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;

相关文档
最新文档