Python 2.7에서 작업.반복에서 문자열이 생성되는 인스턴스의 수를 더하기
나는 무작위 걸음 걸이를 꾸미는 것에 착수하고있다. 하지만 우선 난 임의의 생성기에서 얻은 결과의 수를 합산하는 데 문제가 있습니다.
코드의 첫 번째 조각이 경우
def random_pick(some_list, probabilities):
x = random.uniform(0,1)
cumulative_probability = 0.0
for item, item_probability in zip(some_list, probabilities):
cumulative_probability += item_probability
if x < cumulative_probability: break
return item
이리스트는 A = [ '아웃'히트 '] 및 각각의 확률은 B = 0.3, 0.7 주어진다 ]. 이 코드는 확률 .3의 'Hit'및 확률 .7의 'Out'을 반환합니다.
나는 그 때 그 확률에 따라 플레이어의 타율의 대략적인 시뮬레이션을 만들 수있는 코드를 가지고 :
def battingAverage(atBats, i, some_list=a, probabilities=b):
for i in range(1,atBats):
if random_pick(a, b) == 'Hit':
hit = random_pick(a, b)
print '%.0f: %s' % (1, 'Hit')
elif random_pick(a, b) == 'Out':
out = random_pick(a, b)
print '%.0f: %s' % (2, 'Out')
내가 이것을 실행하면, 내가가 선택한만큼 타석의 임의의 세대를 얻을 수 . 그러나 인스턴스의 수 또는 히트와 아웃 모두를 합산 할 수 있기를 원합니다.하지만 어떻게 계산할 수 없었습니다. random_pick을 변경하여 아이템 대신 확률을 반환하면 아래와 비슷한 코드를 사용하려고했지만 아무 소용이 없습니다.
def battingAverage(atBats, i, some_list=a, probabilities=b):
num_hits = 0
num_outs = 0
for i in range(1,atBats):
if random_pick(a, b) == 'Hit':
hit = (random_pick(a, b))/.3
num_hits += hit
elif random_pick(a, b) == 'Out':
out = (random_pick(a, b))/7
num_outs += out
print num_hits, num_outs
모든 도움을 주시면 감사하겠습니다. 또한 몬테카를로 시뮬레이션을 배우기에 좋은 자료를 아는 사람이 있습니까?
아 ... 맞아. 도와 주셔서 감사합니다! –