由等概率生成的0和1构建rand()函数
2013-09-21 16:21
190 查看
问题:有函数rand01()能够等概率的生成0和1,用rand01生成rand(n),使其能够等概率的生成0-n-1的整数。
java代码:
java代码:
public int rand(int n){ while(true){ int bits=(int)Math.ceil((Math.log(n)/Math.log(2))); int v=0; for(int i=0;i<bits;i++){ if(random01()==1){ v|=(1<<i); } } if(v<n){ return v; } } }
相关文章推荐
- 概率随机问题【3】给定能随机生成1到5的函数,写出能随机生成1到7的函数
- sql server 函数--rand() 生成整数的随机数
- 数据结构算法面试题精选及整理-随机数rand7生成rand10函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数(均匀概率问题)
- 给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 一个函数产生0/1的概率为 二分之一, 如何生成一个新函数使得产生0的概率为十分之三 产生1的概率为十分之七
- rand()函数生成随机数
- 【转】给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 【转】给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- c++ 生成随机数rand()函数的使用:设定范围
- 标准库rand()函数的缺陷以及Blitz++随机数生成的简介
- 【转】给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 生成伪随机数的函数int rand(void)和void srand(unsigned seed);
- 随机生成数(C++,rand()函数)
- 1、请编写函数foo(int x, int y, int n) 计算:随机生成x个大小为[1,y]的正整数,它们的和为n的概率是多少?语言仅限于PHP、C/C++、Java中的一种。
- 满足任意概率密度函数分布的随机变量生成算法
- C++中rand()函数生成随机数
- sql server 函数--rand() 生成整数的随机数