首页 > 试题广场 >

用rand5()实现rand7()

[编程题]用rand5()实现rand7()
  • 热度指数:977 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个函数 rand5()可生成 [1,5] 范围内的均匀随机整数,请你试写一个方法 rand7 生成 [1,7] 范围内的均匀随机整数。
1.你只能调用 rand5() 且不能调用其他随机函数的方法。比如请不要使用系统的random() 方法,不要用题目里面类似于rand5的方法。
2.每个测试用例将有一个内部参数 n,表示你实现的函数 rand7() 在测试时将被调用的次数,但是这个参数不会被你看见,你可以在自测的时候使用。
3.该题判断你的代码是否正确的依据是:
3.1 你的代码不会陷入死循环,导致超时或者其他情况
3.2 你生成的数据是否都在[1,7]内
3.3 你生成的数据的期望是否接近4
3.4 你生成的数据在[1,7]是不是接近均匀分布

数据范围:

示例1

输入

1

输出

[2]
示例2

输入

2

输出

[1,5]
示例3

输入

3

输出

[1,3,7]

这道题你会答吗?花几分钟告诉大家答案吧!

问题信息

上传者:牛客301499号
难度:
0条回答 2233浏览

热门推荐

通过挑战的用户

查看代码
用rand5()实现rand7()