April 14, 2008

вахуе.

Я в прострации. У матрицы есть чит-коды. Вот один из них — Парадокс "Монти Холла".

Вкратце: перед вами три закрытых двери, за одной из них находится автомобиль, за двумя другими - козы. Вы выбираете одну из дверей, но не открываете её. После этого, ведущий, который знает где приз, открывает одну из дверей, за которыми находятся козы и спрашивает: "хотите ли вы изменить свой выбор?". Парадокс заключается в том, что если вы измените свой выбор, ваши шансы на победу увеличиваются до 66%.

Мой мозг отказывается признавать что этот закон действует в реальном мире, но вот программка для экселя:

Sub Макрос1()
p_num = 0: v_num = 0: victory_without_change = 0: victory_with_change = 0
Randomize
For i = 1 To 50000
p_num = Int((3 * Rnd) + 1): v_num = Int((3 * Rnd) + 1): kick_num = Int((3 * Rnd) + 1)
While kick_num = p_num Or kick_num = v_num
kick_num = Int((3 * Rnd) + 1)
Wend
If p_num = v_num Then
victory_without_change = victory_without_change + 1
End If
new_choise = Int((3 * Rnd) + 1)
While new_choise = v_num Or new_choise = kick_num
new_choise = Int((3 * Rnd) + 1)
Wend
If p_num = new_choise Then
victory_with_change = victory_with_change + 1
End If
Next
Range("A2").Select: ActiveCell.FormulaR1C1 = "победы без смены"
Range("A3").Select: ActiveCell.FormulaR1C1 = "победы со сменой"
Range("B2").Select: ActiveCell.FormulaR1C1 = Str(victory_without_change)
Range("B3").Select: ActiveCell.FormulaR1C1 = Str(victory_with_change)
Range("C2").Select: ActiveCell.FormulaR1C1 = Str(victory_without_change / (victory_with_change + victory_without_change))
Range("C3").Select: ActiveCell.FormulaR1C1 = Str(victory_with_change / (victory_with_change + victory_without_change))
End Sub