免责声明:不确定问题的标题是否准确......
假设我需要在接下来的 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