打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
有rand7得到rand10
定义rand7生成1-7
(rand7()-1)*7={0,7,14,21,28,35,42}
rand7={1,2,3,4,5,6,7}
两者相加生成1-49的随机数,每个概率为1/49
现在要生成1-10,只需生成等概率的1-10*N,然后%10即可
如下程序表示只取1-40之间的数
 
  1. int rand10()  
  2. {  
  3.     int a71, a72, a10;  
  4.       
  5.     do   
  6.     {  
  7.         a71 = rand7() - 1;  
  8.         a72 = rand7();  
  9.         a10 = a71 *7 + a72;  
  10.     } while (a10 >= 40);  
  11.       
  12.     return (a10) %4 + 1;  
  13. }   
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
宿舍买饭随机数概率生成器
EXCEL实现随机打分
教你用excel决定今天吃什么
用C语言产生真正的随机数
2012年 雅虎北京研发中心 电话面试的一道概率题
关于面试中经常出现的根据一个随机数构造另外的随机数的解法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服