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

醉酒的人走路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编程一个...的网友还看了以下:

下列选项中,包含矛盾双方在一定条件下相互转化的思想的是A.祸兮福所倚,福兮祸所伏B.知己知彼,百战  2020-06-19 …

下列选项中,符合矛盾双方在一定条件下可以相互转化的道理有[]A.祸兮福之所倚,福兮祸之所伏B.虚心  2020-06-30 …

下列选择中,符合矛盾双方在一定条件下可以相互转化的道理的有[]A.择其善者而从之,择其不善者而避之  2020-07-12 …

对于他人的经验要学会选择,否则会成为负担。漫画《选择经验》给我们的启示是()①矛盾的普遍性寓于特殊性  2020-11-01 …

如图漫画所蕴含的哲理有()①矛盾双方在一定条件下相互转化②价值判断与价值选择具有社会历史性③意识对于  2020-11-07 …

图画《谣言与传播》警示我们()A.任何量的变化都能引起质的变化B.对真理的认识具有主体的差异性C.自  2020-11-23 …

单项选择题30:居安思危这句名言体现的哲学道理是A.矛盾双方在一定条件下可以相互转化B.矛盾既有普遍  2020-11-26 …

“眉毛上的汗水和眉毛下的泪水你总得选一样”,下图突出强调了A.矛盾双方在一定条件下相互贯通B.矛盾的  2020-12-05 …

多选塞翁失马焉知非福的哲学寓意是“塞翁失马焉知非福”的哲学寓意是A事物是发展变化的B事物发展方面不可  2020-12-07 …

漫画(如图)告诉我们()①价值观对人生选择具有导向作用②矛盾双方在一定条件下会相互转化③不同的价值判  2020-12-15 …