python实现随机漫步

Python010

python实现随机漫步,第1张

1、随机漫步

随机漫步:每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策决定的。可以认为是:蚂蚁在晕头转向的情况下,每次都沿随机的方向前行所经过的路径。

1.1 创建RandomWalk()类

1.2 选择方向

1.3 绘制随机漫步图

输出:

1.4 模拟多次随机漫步

1.5 给点着色

输出:

1.6 重新绘制起点和终点

输出:

1.7 隐藏坐标轴

输出:

1.8 增加点数

输出:

1.9 调整尺寸以适应屏幕

输出:

import random

import numpy as np

List = np.array([(0,0),(1,1),(1.6,1.8),(3,3)])

d = 0.5

def get_random(low,high):

 return((high-low)*random.random()+low)

n = 0

while n<100000:

 x = get_random(0,3)

 y = get_random(0,3)

 rand_tuple = np.array([x,y])

 tmp_dist = np.sqrt(np.sum(np.square(List-rand_tuple),axis = 1))

 tmp_dist_bool = tmp_dist >= d

 if np.sum(tmp_dist_bool) == len(List):

  print(x,y)

  break

 n += 1

if n==100000:

 print("After",n,"tries,can't get a random point!Check whether the problem has a solution!")

思路:1、定义一个字典,把名字和数字对应起来;2、引用随机模块;3、输入要点名的个数,通过循环输出名字。

具体代码如下:

# -*- coding:utf-8 -*-

from random import randint

DictName = {1: 'Aaron',

2: 'Abel',

3: 'Abraham',

4: 'Adam',

5: 'Adrian',

6: 'Alva',

7: 'Alex',

8: 'Alexander',

9: 'Alan',

10: 'Albert',

11: 'Alfred',

12: 'Andrew',

13: 'Andy',

14: 'Angus',

15: 'Anthony',

16: 'Arthur',

17: 'Austin',

18: 'Ben',

19: 'Benson',

20: 'Bill',

21: 'Bob',

22: 'Brandon',

23: 'Brant',

24: 'Brent',

25: 'Brian',

26: 'Bruce',

27: 'Carl',

28: 'Cary',

29: 'Caspar',

30: 'Charles',

31: 'Cheney',

32: 'Chris',

33: 'Christian',

34: 'Christopher',

35: 'Colin',

36: 'Cosmo',

37: 'Daniel',

38: 'Dennis',

39: 'Derek',

40: 'Donald',

41: 'Douglas',

42: 'David',

43: 'Denny',

44: 'Edgar',

45: 'Edward',

46: 'Edwin',

47: 'Elliott',

48: 'Elvis',

49: 'Eric',

50: 'Evan',

51: 'Francis',

52: 'Frank',

53: 'Franklin',

54: 'Fred',

55: 'Gabriel',

56: 'Gaby',

57: 'Garfield',

58: 'Gary'}

Num = raw_input('请输入需要点名个数:')

flag = True

while flag:

    if Num.isdigit():

        Ind = int(Num)

        flag = False

    else:

        print '输入错误,请确认'

else:

    for i in range(Ind):

        print DictName[randint(1,58)]

运行结果:

请输入需要点名个数:4

Brant

Cheney

David

Alan