Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- from datetime import datetime
- from scipy.stats import levy
- random.seed(datetime.now())
- def direction(previous_direction):
- """pick an initial random direction with uniform distribution"""
- directions = ['+1', '-1']
- if previous_direction == '0':
- direction_idx = random.randint(0, 1)
- elif previous_direction == '+1':
- direction_idx = 0
- elif previous_direction == '-1':
- direction_idx = 1
- #direction = directions[direction_idx]
- # custom parameters
- loc = 0
- scale = 1
- switch_threshold = 50
- """direction inversion using a random pick from levy distribution"""
- r = levy.rvs(loc, scale) #generate random number with levy distribution
- # use > to invert direction on tail
- # use < to invert direction on head
- if r > switch_threshold:
- direction_idx = 1 if direction_idx==0 else 0
- #print(str(r)+'\tinverted direction => '+directions[direction_idx])
- #else:
- #print(str(r)+'\t'+directions[direction_idx])
- #print(directions[direction_idx])
- return(directions[direction_idx]) #returns the direction the function has chosen as a string of either +1 or -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement