Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172337
  • 博文数量: 37
  • 博客积分: 1690
  • 博客等级: 上尉
  • 技术积分: 468
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-13 21:30
文章分类

全部博文(37)

文章存档

2011年(19)

2010年(18)

我的朋友

分类: C/C++

2011-09-19 09:22:20

给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
 
 
答案:
编写一个生成0和1的随机函数:
step1. 调用给定的随机函数original_rand()生成一个数
如果==3 goto step1
如果<3 return 0
如果>3 return 1

编写一个生成1到7的随机函数
调用生成0和1的随机函数3次,构成000或001或010.......
如果不等于0返回,否则重新生成。
 
                                   代码如下: 
int rand_01()
{
   int r = original_rand();
   if(r == 3) return rand_01();
   if(r < 3) return 0;
   if(r > 3) return 1;
}

int rand_17()
{
   int i = 0;
   i += rand_01();
   i += rand_01() << 1;
   i += rand_01() << 2;
   if(i == 0) return rand_17();
   return i;
}
阅读(1598) | 评论(0) | 转发(0) |
0

上一篇:qthead 编译报错,不识别qthread

下一篇:没有了

给主人留下些什么吧!~~