早教吧 育儿知识 作业答案 考试题库 百科 知识分享

醉酒的人走路java编程一个醉汉在漫无目的地行走,开始他从一个灯柱出发,每走一步他都会忘记现在的位置,随机选择一个方向再走一步,分别以四分之一的概率选择东南西北。在走N布后

题目详情
醉酒的人走路 java编程
一个醉汉在漫无目的地行走,开始他从一个灯柱出发,每走一步他都会忘记现在的位置,随机选择一个方向再走一步,分别以四分之一的概率选择东南西北。在走N布后他会离灯柱有多远?
a.编写RandomWalker.java程序,从命令行读入参数N,并模拟醉汉随机走N步。每走一步后输出醉汉所在坐标,以起始的灯柱作为(0, 0)。并在最后输出与出发地距离的平方。
运行示例:
> java RandomWalker 10
(0, -1)
(0, 0)
(0, 1)
(0, 2)
(-1, 2)
(-2, 2)
(-2, 1)
(-1, 1)
(-2, 1)
(-3, 1)
squared distance = 10

> java RandomWalker 20
(0, 1)
(-1, 1)
(-1, 2)
(0, 2)
(1, 2)
(1, 3)
(0, 3)
(-1, 3)
(-2, 3)
(-3, 3)
(-3, 2)
(-4, 2)
(-4, 1)
(-3, 1)
(-3, 0)
(-4, 0)
(-4, -1)
(-3, -1)
(-3, -2)
(-3, -3)
squared distance = 18

b.编写RandomWalkers.java程序,从命令行读入参数N和T,表示共进行T次试验,每次试验模拟随机走N步,并计算距离的平方。输出距离平方的平均值。
运行示例:
> java RandomWalkers 100 100000
mean squared distance = 100.15086

> java RandomWalkers 100 100000
mean squared distance = 99.95274

> java RandomWalkers 200 100000
mean squared distance = 199.57664

> java RandomWalkers 400 100000
mean squared distance = 401.22024

> java RandomWalkers 800 100000
mean squared distance = 797.5106

> java RandomWalkers 1600 100000
mean squared distance = 1600.13064
▼优质解答
答案和解析
public static void main(String[] args) {
Scanner c = new Scanner(System.in);
int N = 0;//N步
int T = 0;//次数
String inputStr = "";
while (true) {
System.out.println("请输入2个正整数,中间用逗号隔开,例如 3,5 :");
inputStr = c.nextLine();
String[] arr = inputStr.trim().split(",");
if (arr.length == 2) {
try {
N = Integer.parseInt(arr[0].trim());
T = Integer.parseInt(arr[1].trim());
if (N <= 0 || T <= 0) {
System.out.println("输入有误,请输入2个正整数,中间用逗号隔开,例如 3,5 ");
}
else {
break;
}
}
catch (Exception e) {
System.out.println("输入有误,请输入2个正整数,中间用逗号隔开,例如 3,5 ");
}
}
}
//模拟次数
int curr_x = 0;
int curr_y = 0;
for (int i = 0; i < T; i++) {
System.out.println("模拟第" + (i + 1) + "遍开始:");
for (int j = 0; j < N; j++) {//每次走N步
int position = new Random().nextInt(4);// 1 东 2 南 3 西 4 北
if (position == 1) {
curr_x++;
}
else if (position == 2) {
curr_y--;
}
else if (position == 3) {
curr_x--;
}
else {
curr_y++;
}
System.out.println("(" + curr_x + "," + curr_y + ")");
}
System.out.println("模拟第" + (i + 1) + "遍结束:");
System.out.println("模拟第" + (i + 1) + "遍距离为:" + (curr_x * curr_x + curr_y * curr_y));
}
}
看了 醉酒的人走路java编程一个...的网友还看了以下:

有一台长60厘米,宽40厘米,高80厘米的洗衣机.给这台洗衣机做布罩,至少要多少平方厘米布料如果做  2020-07-07 …

黄鼠是我国北方农田和草原的重要害鼠对农作物危害严重。某研究机构对其进行了调查调查样方总面积为2hm  2020-07-16 …

某研究机构对我国北方草原一种主要害鼠--布氏田鼠进行了调查.调查样方总面积为2hm.(1hm=100  2020-11-02 …

为了迎接全运会在济南召开山东综艺频道举办了“全运向前冲”节目.为了方便观众观看节目,闯关场地的外围围  2020-11-21 …

黄鼠是我国北方农田和草原的重要害鼠,对农作物危害严重.某研究机构对其进行了调查,调查样方总面积为2h  2020-12-04 …

某研究机构对我国北方草原一种主要害鼠——布氏田鼠进行了调查。调查样方总面积为2hm2(1hm2=10  2020-12-04 …

2012年2月15日,世界银行行长美国人佐利克正式宣布将在6月底期满卸任。4月16日,世行宣布美国人  2020-12-18 …

黄鼠是我国北方农田和草原的重要害鼠,对农作物危害严重.某研究机构对其进行了调查,调查样方总面积为2h  2021-01-02 …

“标志(记)重捕法”是调查动物种群密度中常用的一种调查法.某研究机构对我国北方草原一种主要害鼠--布  2021-01-02 …

“标志(记)重捕法”是调查动物种群密度中常用的一种调查法.某研究机构对我国北方草原一种主要害鼠--布  2021-01-02 …