/* *************************************************************编程珠玑**************************************************************************/
// 抽样问题: 《编程珠玑》
// 问题描述:输入两个整数m,n,(m<n),输出一个由m个随机数组成的有序列表,这些随机数是0~n-1,并且每个数只能出现一次。要求每个数出现的概率相同。
// 思路:
// 代码实现:p121
void genknuth(int m, int n)
{
for(int i=0; i<n ; i++)
{
if(rand()%(n-i)<m)
{
cout<<i<<endl;
m--;
}
}
}
// 抽样问题: 《编程珠玑》
// 问题描述:输入两个整数m,n,(m<n),输出一个由m个随机数组成的有序列表,这些随机数是0~n-1,并且每个数只能出现一次。要求每个数出现的概率相同。
// 思路:
// 代码实现:p121
void genknuth(int m, int n)
{
for(int i=0; i<n ; i++)
{
if(rand()%(n-i)<m)
{
cout<<i<<endl;
m--;
}
}
}
本文探讨了《编程珠玑》中的一道经典抽样问题:如何生成一个包含m个元素的有序列表,这些元素从0到n-1中随机选取且不重复,每个数被选中的概率相等。提供了具体的实现思路及代码示例。
734

被折叠的 条评论
为什么被折叠?



