给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
2013-12-17 16:03
302 查看
定理: 给定生成随机1~n的随机函数,利用公式: n* ( f(n) - 1 ) + f ( n) 生成的 1 ~ n * n 的 随机数是均匀的;
5 * ( rand5() -1 ) + rand5() 获得的是 1 - 25 之间的随机数,去掉21之后的数,就是1~21 之间均匀随机的数,
再/3就是1~7之间的数
生成随机7的函数如下:
int rand7()
{
for ( ; ; )
{
int iRand = 5 * ( rand5() - 1 ) + rand5();
if ( iRand > 21 )
{
continue;
}
return iRand / 3;
}
}
生成随机2的函数如下
int rand2()
{
for ( ; ; )
{
int iRand = rand5();
if ( iRand == 3 )
{
continue;
}
else if ( iRand < 3 )
{
return 1;
}
else
{
return 2;
}
}
5 * ( rand5() -1 ) + rand5() 获得的是 1 - 25 之间的随机数,去掉21之后的数,就是1~21 之间均匀随机的数,
再/3就是1~7之间的数
生成随机7的函数如下:
int rand7()
{
for ( ; ; )
{
int iRand = 5 * ( rand5() - 1 ) + rand5();
if ( iRand > 21 )
{
continue;
}
return iRand / 3;
}
}
生成随机2的函数如下
int rand2()
{
for ( ; ; )
{
int iRand = rand5();
if ( iRand == 3 )
{
continue;
}
else if ( iRand < 3 )
{
return 1;
}
else
{
return 2;
}
}
相关文章推荐
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数(google题目)
- 谷歌面试题:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 每日一道算法题:Google面试题:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 谷歌面试题:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数 1 到 5 的函数,写出能随机生成整数 1 到 7 的函数。
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
- [转]给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 【算法】给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 谷歌面试题:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数