- 博客(1)
- 收藏
- 关注
转载 设计一个随机洗牌的算法
问题:给定一个有序序列1~n,要你将其完全打乱,要求每个元素在任何一个位置出现的概率均为1/n。 解决方案:依次遍历数组,对第n个元素,以1/n的概率与前n个元素中的某个元素互换位置,最后生成的序列即满足要求,1/n的概率可通过rand() % n实现。见如下程序: void swap(int* p, int* q) { int tmp = *p; *p = *q;
2015-05-31 16:22:54 2103 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人