首页 > 试题广场 >

用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]
头像 RundongCao
发表于 2022-12-15 20:49:24
import random #coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # rand5() is defined # @return(756076230) a random integer in the range 1 to 7 # 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-09 18:27:42
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * rand5() is defined * @retur 展开全文