未知元素个数遍历一遍随机等概率取出一个

来源:互联网 发布:linux下web服务器配置 编辑:程序博客网 时间:2024/05/16 15:54

给你一个文件,或数组之类的,不知里面的元素的个数,要求遍历一遍,随机等概率的取出里面的一个记录

分析:这个真不容易想到,百度了一下,借鉴了别人的思想,整理的一下自己的代码

//  [10/6/2013 qingezha]遍历一个文件,里面元素个数不知道,让你设计一个算法遍历一遍,等概率的随机取出一个元素//可以这样:设现在遍历到第 i 个元素,现在判断如果 rand()%i为0则将返回值更新为第i个元素;否则不变char get_equal_char(char *arr){if(arr == NULL)return NULL;int i = 1;char re_char = arr[0];char *temp = arr;while(*arr){if(rand()%i==0)//这里牛逼re_char = arr[i-1];++i;++temp;}return re_char;}


原创粉丝点击