Ошибка при векторизации функции, содержащей цикл while ⇐ Python

Программы на Python
Anonymous
Ошибка при векторизации функции, содержащей цикл while

Сообщение Anonymous »

У меня есть следующий код:

Код: Выделить всё

import numpy as np
from numpy import random

@np.vectorize
def simulation(_):
numRolls = 0
diff = 0
prevRoll = -999999
while True:
roll = random.randint(1, 7)
print(prevRoll, roll)
numRolls += 1
diff = np.abs(roll - prevRoll)
if diff == 1:
break
else:
prevRoll = roll

return numRolls
Если я удалю декоратор, код будет работать отлично. Но при использовании np.vectorize кажется, что цикл while продолжает выполняться, даже если он достигает разрыва, а затем, когда он снова достигает разрыва, цикл останавливается, что кажется очень странным. Может ли кто-нибудь сказать мне, в чем проблема и какое решение будет? Мне нужно векторизовать функцию, чтобы найти среднее значение.

Подробнее здесь: https://stackoverflow.com/questions/790 ... while-loop

Вернуться в «Python»