您的位置:首页 > 其它

给定能随机生成整数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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐