“阿历克斯,这方面你最擅长,就由你来制定方案吧!”
牛仔拍了拍杨成的肩膀。
杨成望着眼前的二叉树森林,陷入沉思。
在产生随机样本之前,先要设法产生单个的随机数。
对此,大部分编程语言都提供了类似rand的函数。
rand函数一般是返回0到1之间均匀分布的一个随机实数。
杨成调出编辑器面板,开始了编写。
第一步:
将二叉树森林的每一棵树,编号为1到n的整数。
目标是从中机选m个(m小于等于n)。
第二步:
根据rand函数编写randint函数,它返回某个区间均匀分布的一个随机整数。
第三步:
开始编写取样算法。
初始化空集合s。
利用randint函数产生1到n之间的随机数。
如果这个随机数,集合s中找不到,就添加进s。
如果这个随机数,集合s中已存在,就产生新随机数,继续判断。
整个算法持续到,集合s内元素个数等于m,达到我们的要求,终止。
通过这三步,就能够产生m个无重复元素的随机样本。
杨成一口气写完,长吁一口气。
“写完了?”,牛仔关切地看着他。
“嗯”,杨成擦了把汗。
在他看来,这个算法有很多优点:正确,很高效,非常简洁。
至少在他目前看来,是没办法再改进了。
“主人”,一直在旁沉默不语的小机器人罗比突然发话了。
“你这个算法存在一个缺陷”。飘天文学_www.piaotiange.com
『加入书签,方便阅读』