с помощью питону 3.3, я должен ответить на следующие вопросы:Вероятности вытягивать Discs (питон)
из коробки полных дисков, мы хотели бы знать вероятность вытягивать два синих диски в ряде когда все диски в коробке либо красные, либо синие. Напишите функцию, которая может вычислить эту вероятность для поля, заполненного любым количеством красных дисков и любым количеством синих дисков. Тест-драйв, который вы можете использовать: если в коробке содержится 15 синих дисков и 6 красных дисков , у вас есть 50% -ный шанс рисовать два синих диска подряд.
Теперь напишите функцию, которая вычисляет вероятность рисования n синих дисков в строке для , где n находится между 0 и числом дисков в поле.
я попытался с помощью этой модели
import random
def random_pick(some_list, probabilities):
x = random.uniform(0, 1)
cumulative_probability = 50.0
for item, item_probability in zip(some_list, probabilities):
cumulative_probability += item_probability
if x < cumulative_probability: break
return item
я почти полностью утрачена. Пожалуйста помоги.
Существует три способа решения этой проблемы. Первое - это [Моделирование по методу Монте-Карло] (http://en.wikipedia.org/wiki/Monte_Carlo_method), где вы пробуете большое количество случайных значений и подсчитываете результаты. Второй - фактически рассчитать вероятности посредством математического анализа. Третий - перечислить все возможные результаты. –
Как указывает Марк, существует множество способов решить эту проблему, о которой вы должны знать. Я дал ответ на самый простой вопрос для такой проблемы, но я поддержал Марка, потому что я думаю, что знание других статистических методов, с помощью которых вы могли бы достичь решения, важно. – Tawnos
@Mark, Monte Carlo на самом деле не решает его, но может обеспечить полезное приближение –