这个算法的时间分析怎么算?
随机产生n个自然数,要求各不相同,这个的一个算法为,数保存在数组里,每个随机产生,如果已经存在就重来,怎么计算此算法的时间期望?因为步骤不定,完全无从下手啊,求大神.
可能我没说清楚,如n为5,则产生1到5的任意排列,如用此算法,产生最后一个的概率为0.2,步骤难确定
人气:167 ℃ 时间:2020-02-04 03:26:11
解答
1、定义一个数组
2、产生一个随机数
3、把产生的随机数按递增顺序放入数组,如果已经存在则舍弃该数据
4、重复2和3,产生需要数目的随机数
如果需要的数据不是很多的话,时间复杂度是O(n)
推荐
猜你喜欢
- 聪聪让明明任意写出一个四位数,明明就写了2008,聪聪让明明用这个四位数减去它各数位上的数的和,明明得到2008-(2+0+0+8)=1998,聪聪又让明明将所得的数随便全掉一个数,将剩下的数说出来,明明圈掉了8,告诉聪聪剩下的三个数是1,
- 四年级400动物作文小狗
- 用超声波能粉碎人体内的结石这说明声波具有?
- 英语翻译
- 10*10*111111*1=?
- 作文 以希望为话题
- 按首字母填空
- 若m,n是一元二次方程x2;+1994x+7的两根,那么(m2;+1993m+6)(n2;+1995n+8)等于——————