gpt4 book ai didi

ruby - 计算当前概率相对于先验概率以获得均匀分布

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:45 24 4
gpt4 key购买 nike

免责声明:不确定问题标题是否准确...

假设我需要在接下来的 100 分钟内洗碗。我知道我必须最迟在 100 分钟后执行此操作。我每 2 分钟问自己“我应该做还是不做?” (所以我一共问了自己50次)。每次我问自己是否应该做这件事时,我想计算我做这件事的概率,这将决定我现在是否做。概率应该是这样的,如果我重复这个实验一百万次,那么我在 2 分钟、4 分钟、6 分钟等之后做它的可能性几乎是均匀的——或者换句话说,均匀分布这样做的概率。

我做了一个实验,我将个体概率设置为 check_number/total_number_of_checks 但是这似乎没有给出正确的结果。有什么想法吗?

# gem install ascii_charts
require 'ascii_charts'

time_frame = 100
check_frequenzy = 2
number_of_checks = time_frame / check_frequenzy

checks = (1..number_of_checks)

result = {}
checks.each do |i|
result[i] = 0
end

10_000.times do |t|
checks.each do |check_number|
probability = check_number/number_of_checks.to_f
if rand() <= probability
# Oh no! I need to do the dishes now :-(
result[check_number] += 1
break
end
end
end

puts AsciiCharts::Cartesian.new(result.to_a).draw

#=>

950|
900| * * *
850| *
800| *
750| *
700| *
650| *
600| * *
550|
500| *
450|
400| *
350| *
300| *
250|
200| * *
150| *
100| *
50| * * *
0+----------------------------------------------------------------*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

最佳答案

您可以使用 Bayes' Theorem 计算这些条件概率.

T是一个等于洗碗时间(以分钟为单位)的随机变量。

我假设概率是“线性的”(在 0 到 100 分钟之间),你的意思是,对于任何随机变量 t :

P[T <= t] = .01*t, 0 <= t <= 100

如果餐具没有及时洗好t0 ,在接下来的两分钟内洗碗的(条件)概率由下式给出:

P[T <= t+2| T > t] = P[T <= t+2 and T > t] / P[T > t]
= (P[T <= t+2] - P[T <= t]) / (1-P[T <= t])
= (.01*(t+2) - .01t) / (1-.01t)
= 2/(100-t)

P[T <= t+2| T > t]读作,“T 的概率(值)小于或等于 t+2,假设(值)T 大于 t”。

因此:

P[T <=   2 | T >  0] = 2/98
P[T <= 4 | T > 2] = 2/96
...
P[T <= 98 | T > 96] = 2/4
P[T <= 100 | T > 98] = 2/2

如果你放弃线性要求,对我来说,如果我们在谈论菜肴:

P[T <= 98] #=> 0

关于ruby - 计算当前概率相对于先验概率以获得均匀分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com