我想到个方法,未必正确,暂时先占个楼层 假如要生成的数字 n-1 最长为 d 位,那么就构造一个 d 位的整数。构造规则是: 从低位向高位按位构造(或者反向,这个不重要)。 循环调用 rand(),如果返回值为奇数,则对应的位为1;偶数则为0. 循环结束后,计算出这 d 位数字的值。
2楼显然是不对的。。
方法好,但要注意两点: 2.“如果返回值为奇数,则对应的位为1;偶数则为0”不能保证概率平均,比如rand()可得0,1,2,则偶数的概率比奇数大,这里还需要用到m,保证得0或得1的概率一样。
3,882
社区成员
9,045
社区内容
加载中
试试用AI创作助手写篇文章吧