# -*- coding: utf-8 -*-
#import sys
#sys.setrecursionlimit(1000000) #例如这里设置为一百万
from random import random
from math import floor
'''
这样一个场景:
n为一个正整数
m为一个正整数
在【0 , n)之间产生m次随机数, 求这些随机数在【0 , n)区间内覆盖率的预期,以及达到一定的覆盖率产生随机数次的预期
'''
#计算覆盖率,n为区间上限,m为产生随机数的次数
#逻辑没有问题,但是Python对于递归深度有限制,改成循环即可
def f_calcu(n , m) :
if m == 1 :
return 1.0/n
else :
tmp = f_calcu(n , m -1 )
return (1 - tmp)/n + tmp
#tmp = f_calcu(100 , 100)
#f_calcu(100 , 100) = 0.6339676587267709
#print tmp
#求覆盖率达到0.9999时,所需的次数预期
n = 100000
tmp = 1.0/n
cnt = 1
wh
#import sys
#sys.setrecursionlimit(1000000) #例如这里设置为一百万
from random import random
from math import floor
'''
这样一个场景:
n为一个正整数
m为一个正整数
在【0 , n)之间产生m次随机数, 求这些随机数在【0 , n)区间内覆盖率的预期,以及达到一定的覆盖率产生随机数次的预期
'''
#计算覆盖率,n为区间上限,m为产生随机数的次数
#逻辑没有问题,但是Python对于递归深度有限制,改成循环即可
def f_calcu(n , m) :
if m == 1 :
return 1.0/n
else :
tmp = f_calcu(n , m -1 )
return (1 - tmp)/n + tmp
#tmp = f_calcu(100 , 100)
#f_calcu(100 , 100) = 0.6339676587267709
#print tmp
#求覆盖率达到0.9999时,所需的次数预期
n = 100000
tmp = 1.0/n
cnt = 1
wh