我是靠谱客的博主 重要啤酒,最近开发中收集的这篇文章主要介绍模拟布朗运动,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

描述

  花粉等悬浮在流体中的微粒都会做一个无规则的运动,这就是布朗运动。我们可以使用随机数来模拟这种运动。微粒的开始坐标为(0,0),随后随机选择运动方向和运动距离。假设当前坐标为(Xold,Yold),Xold在[-1,1]列表中随机选择出运动的方向Dx、在[1,2,3,4,5,6,7,8,9,10]列表中随机选择出水平移动的距离Hx,则Xnew=Xold+Dx*Hx。Yold坐标也一样,独立于Xold选择运动方向Dy和运动距离Vy,则有Ynew=Yold+Dy*Vy。这样微粒就会移动到新坐标(Xnew,Ynew)。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

题目要求:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

  1. 输入一个整数sd作为随机数的种子
  2. 模拟微粒五次无规则运动,将坐标依次存入列表,并打印列表(形如:[(0, 0), (2, 6), (7, -4), (17, 6), (24, -3), (15, -12)])
  3. 计算微粒5次布朗运动所形成的坐标的欧式距离之和(二维坐标(x1,y1)与(x2,y2)的欧式距离为sqrt((x1-x2)**2 +(y1-y2)**2))。结果保留两位小数输出。

输入格式

 输入为一个整数,例如(-5)。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

输出格式

 输出为两行,第一行是微粒五次运动后的坐标值形成的列表,形如:[(0, 0), (2, 6), (7, -4), (17, 6), (24, -3), (15, -12)];第二行是五次运动的欧式距离之和(保留两位小数)。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

输入输出示例

输入输出
示例 12[(0, 0), (2, 6), (7, -4), (17, 6), (24, -3), (15, -12)]
55.78
示例2-5

[(0, 0), (-6, 6), (-5, 7), (-13, 15), (-3, 25), (4, 18)]‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

45.25‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

import random
import math
random.seed(int(input()))
tup1 = (0,0)
arr = list()
arr.append(tup1)
for i in range(5):
    Xold = arr[i][0]
    Dx = random.choice([1,-1])
    Hx = random.choice([1,2,3,4,5,6,7,8,9,10])
    Xnew = Xold + Dx * Hx
    Yold = arr[i][1]
    Dy = random.choice([1,-1])
    Vy = random.choice([1,2,3,4,5,6,7,8,9,10])
    Ynew = Yold + Dy * Vy
    tup1  = (Xnew,Ynew)
    arr.append(tup1)
print(arr)
sum = 0
for i in range(5):
    temp = math.sqrt((arr[i][0] - arr[i+1][0])**2 + (arr[i][1] -arr[i+1][1])**2)
    sum = sum + temp
print(round(sum,2))

最后

以上就是重要啤酒为你收集整理的模拟布朗运动的全部内容,希望文章能够帮你解决模拟布朗运动所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部